Netty轻松实现聊天室,附带数据记录,聊天历史

Netty轻松实现聊天室,附带数据记录,聊天历史
据说快七夕······git

不对,这不是今天的主题,嘿嘿。

今天说说一个小的网页聊天室,功能以下

群聊无限制github

记录用户群聊信息数据库

下次登陆显示聊天历史缓存

消息发送速度(光速)安全

聊天历史显示(可配置最近10条)多线程

若是你以为还不够?那么下一个组件可能会更加知足你哦!不过本次先介绍一下此次咱们的几个功能的具体实现还有个人一些思路。

Netty轻松实现聊天室,附带数据记录,聊天历史

分割线 箭头 动态
对于各位大神来讲,实现一个实时通讯的聊天页面没有什么难度,不过加一些具体的功能可能就须要麻烦一点了。并发

本次我选择SpringBoot2.0.2还有Netty4.1.28这两个版原本结合使用。

SpringBoot集成了WebSocket因此开发通讯流比较简单,Netty是一个多线程可高并发的框架,使用netty能够减小不少对于消息流的安全等处理。

那么聊天系统最重要的就是消息的实时推送,因此不要在消息的处理中作太多操做,但是若是要记录历史消息,就必定涉及数据库的CRUD操做,须要怎么处理呢?

我一开始想到了定时器,我先注入一个临时缓存,存储每一个用户的消息(在Netty消费信息的时候),而后天天固定的时间去跑定时器(对缓存数据进行数据库存储,清空临时缓存),但是若是个人定时时间是晚上12点,那么用户早上聊天的信息,中午从新登陆的时候仍是没有的。

因而我又想到了异步任务,可是要何时去执行呢?

由于每次要最新的聊天历史,那么我暂时想到的是每一个用户离开聊天室的时候,针对于它们的聊天记录进行异步执行。

好在SpringBoot对于异步任务的兼容也很好处理。

以后我用Freenarjer组件,引用页面为模板,将历史记录的最新10条与模板一块儿加载为页面!

这样一个小小的聊天室就完成啦!

版本不一样可能会有相关的代码改动

老规矩!框架

GitHub地址:https://github.com/UncleCatMySelf/SBToNettyChat异步

名称:UncleCatMySelf/SBToNettyChatide

Netty轻松实现聊天室,附带数据记录,聊天历史

相关文章
相关标签/搜索