天天看点

基于WebSocket的聊天系统

基于WebSocket的聊天系统

1需求分析说明

编写一个基于WebSocket的聊天程序,整个系统,实用了C#开发,.NET网站开发,Android开发,在开发实践中学习。

1.1基本功能需求

(1)基于 Websocket协议,实⽤C#语⾔写⼀个B/S聊天⼩程序

(2)实现用户的注册登录,并进行数据库有效管理

(3)使用一种设计模式

1.2各模块功能需求

1、WebSocket客户端

利用bootstrap实现聊天主界面开发。通过WebSocket协议实现浏览器的大厅聊天以及一对一聊天。

2、c#​​服务器​​模块

利用C#语言自己实现了一个WebSocket的服务器,对协议进行解析,并对聊天信息的发送进行管理。

3、Android手机端

利用WebView控件实现Android端的聊天。同时利用JavaScript与Java的交互编程实现手机端的用户管理。

4、用户注册登录模块

网站采用MVC设计模式,实现用户的注册与登录功能,并进行数据库操作。

2概要设计说明

2.1系统结构

基于WebSocket的聊天系统

图 2-1 ​​系统结构图​​

2.2模块介绍

基于WebSocket的聊天系统

图 2-2 模块结构图

3调试分析

遇到的问题:

系统实现过程中真的遇到了很多问题,但遇到问题,解决问题,才真正是程序员的开发历程。在此记录下从开始过程中的所有问题,不管问题大小,供后来借鉴。

  • 数据库的查询并遍历操作:

对数据库的访问是我遇到的用第一个问题,这次使用的Mysql,因为从网上找了一些mysql的操作例程,上面的查询,返回的都是一个int类型的行数,没法实现遍历,最后在同学的帮助下发现了MySqlDataReader这个类,它可以将查询的所有数据存在其中,这样就可以进行后续操作了。

  • jquery,原来就是链接一个库:

之前没有写过网站,所以这部分基础较差,JavaScript也是现学的,有些地方实现起来非常麻烦,以前听说过jquery,这次尝试了一下,发现真的可以简单很多,而且只需要一个链接,既可以实用很多封装好的方法。

  • cookie问题

做用户管理的时候,想找一个可以实现页面切换但用户信息一直存在的方法,选择了用一下cookie,说实话,现在看来这个cookie非常简单,但对于一个完全没用代码实现的人来说,刚开始写的时候还是很困惑的,不知道cookie在哪里添加,如何添加,特别是在用了MVC之后。最后也是进行了多次尝试,找到了最终的实现方法:

HttpCookie myCookie = new HttpCookie("user");

myCookie.Value = user.GetUname();

myCookie.Expires.AddDays(1);

Response.Cookies.Add(myCookie);

  • 访问vs自带iis

使用Visual Studio开发时,虽然可以部署到服务器中,但是想让局域网的其他设备进行访问,竟然不可以?!这样我的Android开发的调试就没法弄了,刚开始都不知道什么原因,还以为是自己Android长吁错了,检查了好几遍,没有逻辑性错误,在意识到可能是服务器地址是无效的,从网上找了好多资料都没解决。最后,用电脑开了一个热点,竟然成功了,真是个好办法呀!

  • java与webview中的js交互

在Android中利用Webview开发总会遇到这个问题,想要获取出Webvie中的数据时,仅仅利用Android的代码是实现不了的。

实现方法:

1) WebView开启JavaScript脚本执行。

2) WebView设置供JavaScript调用的交互接口。

3)客户端和网页端编写调用对方的代码。

4用户使用说明

4.1 网站

打开网站地址进入登录界面:

基于WebSocket的聊天系统

图 4-1 登录界面

基于WebSocket的聊天系统

图 4-2 注册界面

登陆后进入主界面:

基于WebSocket的聊天系统

图 4-3 主界面

之后就可以输入WebSocket服务器地址进行连接了。

4.2 手机端

基于WebSocket的聊天系统

图 4-4 手机界面(1)  

基于WebSocket的聊天系统

图 4-5 手机界面(2)

继续阅读