基于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系统结构

图 2-1 系统结构图

2.2模块介绍

图 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 网站

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

图 4-1 登录界面

图 4-2 注册界面

登陆后进入主界面:

图 4-3 主界面

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

4.2 手机端

图 4-4 手机界面(1)

图 4-5 手机界面(2)

最后,附上我的github开源代码,如果大家喜欢,可以拿来看看:

1、WebChat: ASP.NET的MVC模式实现聊天网站(https://github.com/KevinBetterQ/WebSocket-WebChat )
2、WebSocket-Server: C#实现的WebSocket的服务器端 (https://github.com/KevinBetterQ/WebSocket-Server )
3、AndChat: Android客户端实现代码 (https://github.com/KevinBetterQ/WebSocket-AndChat )

转自https://blog.csdn.net/kevinbetterq/article/details/76861899

基于WebSocket的聊天系统相关推荐

  1. 基于springBoot、Vue、websocket的聊天系统:数据库设计

    一般来说,需求出来之后,经过需求评审后,就需要进行数据库的设计了,毕竟后续功能的开发,很大程度上依赖于表结构的设计,下面简单聊聊web聊天系统的数据库是如何设计的.如需更全面的了解该系统,可以阅读相关 ...

  2. 基于WebSocket实现聊天室(Node)

    基于WebSocket实现聊天室(Node) WebSocket是基于TCP的长连接通信协议,服务端可以主动向前端传递数据,相比比AJAX轮询服务器,WebSocket采用监听的方式,减轻了服务器压力 ...

  3. 基于 WebSocket 的 MQTT 移动推送方案

    WebSphere MQ Telemetry Transport 简介 WebSphere MQ Telemetry Transport (MQTT) 是一项异步消息传输协议,是 IBM 在分析了他们 ...

  4. 基于WebSocket协议实现Broker

    写在前面: 前两篇文字<<基于MQTT协议谈谈物联网开发-华佗写代码>>,<<基于MQTT协议实现Broker-华佗写代码>>主要叙述了MQTT协议的编 ...

  5. workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  6. java开发websocket聊天室_java实现基于websocket的聊天室

    [实例简介] java实现基于websocket的聊天室 [实例截图] [核心代码] chatMavenWebapp └── chat Maven Webapp ├── pom.xml ├── src ...

  7. websocket 发送图片_基于WebSocket的web端IM即时通讯应用的开发

    基于WebSocket的web端IM即时通讯应用的开发 功能列表: 1.Web端的IM即时通讯应用 2.支持上线.下线.实时在线提醒 3.单聊.群聊的建立 4.普通文字.表情.图片的传输(子定义富文本 ...

  8. tornado实现基于websocket的好友一对一聊天功能

    做项目的时候涉及到即时通信了,所以在 gladuo 的建议下看了一篇教程,[转]Tornado 搭建基于 WebSocket 的聊天服务,经过一番修改调试实现了功能,在此总结分享一下. 按思路来聊: ...

  9. 基于WebSocket和Redis实现Bilibili弹幕效果

      嗨,大家好,欢迎大家关注我的博客,我是Payne,我的博客地址是https://qinyuanpei.github.io.在上一篇博客中,我们使用了.NET Core和Vue搭建了一个基于WebS ...

最新文章

  1. ORA-00913错误:PL/SQL: ORA-00913: too many values
  2. openssl C函数总结,
  3. 中国乒乓球,牛!!!!
  4. 云炬Android开发笔记 11主界面-商品分类开发(多布局Section RecyclerView)
  5. 超级计算机换算成智商,全球第二超级计算机运算力不如人脑 《转》
  6. 执行sqoop 用shell_Mysql和Hive之间通过Sqoop进行数据同步
  7. C#并行编程(2):.NET线程池
  8. 批处理学习总结之常用符号
  9. 第六节:变量-可变变量
  10. Matlab低通滤波器的使用--频域图像增强实验
  11. tf 文字识别 多个文字 data 数据流
  12. 马氏距离(Mahalanobis Distance)与欧式距离
  13. petalinux 前端包管理器(dnf)
  14. 如何用安装启动盘启动计算机,如何使用U盘启动进入PE安装系统,小编教你如何安装...
  15. 极米NEW Z6X和坚果G9哪个好?
  16. PLSQL Developer几个可能的隐患
  17. java maptodouble_Lambda表达式mapToDouble.sum精度问题
  18. 博图SCL编程——常规模拟量输入/输出的处理
  19. 从计数器逻辑中揭秘神奇的HDL
  20. node.js和npm下载及安装详细教程

热门文章

  1. Java笔记:JSON
  2. Linux 网络编程——socket 网络编程
  3. Qt实现动态时钟表盘的设计
  4. 在需求海洋中疲于奔命怎么“破”
  5. Gridview控件分页后获得总行数
  6. 未来哪些岗位会被计算机取代,未来十年后,哪些职业会可能消失或被替代?
  7. 华南理工大学WPS创意插件大赛参赛作品-语法高亮插件for WPS 2009 帮助说明
  8. random的七种用法
  9. Driver Genius Professional v16.0.0.226官方版
  10. QQ黑名单发布-轻松屏蔽指定的QQ号在本机登陆采用驱动级进程保护