源码下载:https://download.csdn.net/download/woailol930910/10344278
其中包含了部分未完成的代码生成东西(学习用)
建议先下载源码再看博客
如果中间有问题可以留言或者邮箱[email protected]
大家一起学习一起进步
页面有点丑,希望大家不要介意
展示:
有离线消息:
读取离线消息:
3个聊天室互不干扰,第一个input是与谁的聊天室,下面那个360浏览器的聊天室跟第一个谷歌聊天室的都是对同一个人发的,2号只会收到10号发的消息,下面的消息会出现在列表上显示有已读信息
数据库:
当时我想把websocket聊天室提成一个可以引入的jar形式,但是我怕大家下载了源码无法运行,我就直接上传了整个项目
需要修改:
这2个文件的数据路径(比较麻烦)
代码:
当时在做这个项目时遇到个问题,就是怎么把消息发送给用户列表,使其能监视是否在线和是否有消息未读,并且不影响聊天室。
后面我想到个办法为什么不在2个页面启动同一个websocket,存储不同的session
这2个js中我都创建了websocket
在启动中保存session
通过搜索我发现可以再链接路径上加入可以传入后台onOpen的参数
2个不同的参数
通过websocket自带的获取类型,才区分了2个不同的webscoket
现在连接问题解决了
接下来的问题是怎么区别发送的是什么消息
消息内容分为:
1.上线消息
2.离线消息
3.有未读消息
4.把未读消息已读
我使用了一个笨办法使用:标志
当然在那之前我们需要在发送消息方法中 区分是发送一个哪一个websocket的session
判断是不是聊天窗口发送的消息
判断是不是用户列表显示的消息
在前台我会去判断
等...
然后进行不同的操作
解决上面的问题,基本可以实现聊天室1V1的基本操作了,接下来就是基本的CSS、JS编写,这里就不说了