基于websocket实现单对单聊天以及消息群发,聊天记录保存

我们大多数在网上找到的相关资料只会告诉你这么做,就能实现这个功能,却不知道为什么这么做。在此我对实现过程以及原理做一个大致的总结。关于websock的原理以及详细介绍大家可以参考我的上一篇博客《通俗理解websocket》是一篇来自知乎大神的回答,个人觉得好多文章讲的都不及这一篇深刻。。。。

在此我只实现了消息单对单,以及群发,聊天记录保存的实现。细节方面在此就不做阐述了,有兴趣的小伙伴可以自行补全。主要看的是实现原以及实现思路。有了思路之后做起来当然顺风顺水了哈。

下面进入正题:

1.在Springboot的pom文件中添加maven相应依赖:

2.启用WebSocket的支持:

3.添加websocket服务端-封装了websocket的一些属性、事件和方法,以便我们直接可以调用!我们只需要在客户端实例化 WebSocket,创建连接,然后服务端和客户端就可以相互发送和响应消息。

onOpen方法会把在客户端实例化的用户对象添加到webSocketSet里面。

 

聊天实体:

客户端实现:关键点就是实例化websocket对象,发送消息调用send()方法就可以了。

接收到客户端发来的消息后,判断type值为0的话是用户直接发送,为1的话群组发送信息。

 

然后直接调用服务端websocket的sendInfo,如果单对单发送消息,则只调用一次sendInfo方法,群组发的话则遍历调用sendInfo方法。

 

 

订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请发表评论。x
()
x