SpringMVC+MyBatis+websocket聊天室 可实现1V1聊天 多个聊天互不干扰

源码下载:https://download.csdn.net/download/woailol930910/10344278

其中包含了部分未完成的代码生成东西(学习用)

建议先下载源码再看博客

如果中间有问题可以留言或者邮箱woailol930910@163.com

大家一起学习一起进步

页面有点丑,希望大家不要介意

展示:

    

有离线消息:

读取离线消息:

3个聊天室互不干扰,第一个input是与谁的聊天室,下面那个360浏览器的聊天室跟第一个谷歌聊天室的都是对同一个人发的,2号只会收到10号发的消息,下面的消息会出现在列表上显示有已读信息

数据库:

当时我想把websocket聊天室提成一个可以引入的jar形式,但是我怕大家下载了源码无法运行,我就直接上传了整个项目

需要修改:

这2个文件的数据路径(比较麻烦大笑

代码:

当时在做这个项目时遇到个问题,就是怎么把消息发送给用户列表,使其能监视是否在线和是否有消息未读,并且不影响聊天室。

后面我想到个办法为什么不在2个页面启动同一个websocket,存储不同的session

这2个js中我都创建了websocket

在启动中保存session

 

 

这个时候有个问题:我怎么区别是哪一个websocket发起的连接信息

通过搜索我发现可以再链接路径上加入可以传入后台onOpen的参数

2个不同的参数

通过websocket自带的获取类型,才区分了2个不同的webscoket

现在连接问题解决了

接下来的问题是怎么区别发送的是什么消息

消息内容分为:

1.上线消息

2.离线消息

3.有未读消息

4.把未读消息已读

我使用了一个笨办法使用:标志

当然在那之前我们需要在发送消息方法中 区分是发送一个哪一个websocket的session

判断是不是聊天窗口发送的消息

判断是不是用户列表显示的消息

在前台我会去判断

等...

然后进行不同的操作

解决上面的问题,基本可以实现聊天室1V1的基本操作了,接下来就是基本的CSS、JS编写,这里就不说了

如果运行不起,请删除

中的配置,如下:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值