基于Netty的页面聊天室开发思路
项目需求
- 单页面,进入即登录,系统随机分配连接用户名
- 存储聊天信息消息
- 聊天群发功能
项目架构
功能实现思路
对于Netty的集成是相对简易,配置对应的Handler,在SpringBoot启动的时候,注入并启动对应的Netty监听。
- 对于前端页面而言,是单页面,进入后它会自动与写死的WebSocket连接通信,Netty会自动监听新连接的接入,当新连接建立,我们通过工具类随机生成一个名称,并以键值对进行存储。
- 而对于消息的监听,则直接进行了子连接与其他连接的处理,在获取到消息的时候,服务器再向所有的客户端页面重新群发,且在群发的时候进行判断,如果是原本发送的连接则一个格式,其他接受的则另一个格式,这里方便前端进行样式处理。
- 同时在进行消息监听的时候,所有接受到的消息,服务器都会做本地临时存储处理,以键值对的形式存储用户的聊天消息。
- 在连接断开、用户离线后,调用异步方法,将临时存储库中的聊天消息存储到数据库中
效果展示
GitHub地址
项目名:InChat
项目地址:https://github.com/UncleCatMy...
项目介绍:基于Netty4与SpringBoot,聊天室WebSocket(文字图片)加API调用Netty长链接执行发送消息(在线数、用户列表)、Iot物联网-MQTT协议、TCP/IP协议单片机通信,异步存储聊天数据
如果本文对你有所帮助,欢迎关注个人技术公众号
相关推荐
rootsky 2020-03-04
VanTYS 2020-01-10
疯狂紫萧 2019-12-14
afanti 2019-11-09
RopenYuan 2011-04-30
yangkunlun 2019-08-20
luckysyy 2019-08-21
wangfuxu 2019-09-06
ghpan 2019-04-11
ywwazyj 2019-05-20
Alostz 2014-10-13
huaye00 2019-06-30
chenshengzun 2015-03-26
adonislu 2019-06-30
wenf00 2019-06-30
wildelf 2014-10-20
xxg0 2014-09-29