声明:
该项目基于另外一个项目的拆出版本,详细可见另外一个项目
项目介绍:
实现了:
-
HttpSession消息储存
-
单窗口消息推送
-
群发消息推送
-
上线提醒
-
适合对象:
设计课设人员、学习Java人员、学习websocket人员
项目设计架构
- 开发语言:JAVA
- 开发工具:IDEA
- Web容器:Tomcat
- 后端技术:SpringBoot
- 前端框架:Vue
:
因为WebSocket的特性,虽然能实时接收到消息,但每次刷新浏览器,之前发送过的消息都会丢失,因此这里实现了消息储存功能。
利用HttpSession,将每次会话,用户推送的消息都储存到HttpSession中。前端利用Vue的 created()
钩子函数,每次刷新页面时都先请求获取HTTPSession中已储存的消息列表。
因为涉及到单窗口推送消息、群发消息的限定:
这里规定了HttpSession中会话消息的前缀标识,以此来区分不同的消息,具体参看:
-
CHAT_COMMON_PREFIX = "CHAT_COMMON_"
: 群发消息Session Key前缀标识 -
CHAT_FROM_PREFIX = "CHAT_FROM_"
: 推送方Session Key前缀标识 -
CHAT_TO_PREFIX = "_TO_"
:
这里使用一个固定的官方群组窗口,展示每个用户群发的消息。
消息特点:
-
多个用户发送
-
每个用户发送多条消息
So,HTTPSession中储存的群发消息应该有以下约定:
-
Session Key 中包含用户的ID标识
-
Session Value 应该储存着该Key用户的所有消息(可使用List集合储存)
单窗口消息推送:
对于给指定窗口消息,需要考虑以下几点:
-
推送方是谁?接收方是谁?
-
推送方可能会推送多条消息,并且推送方可能会给多个窗口推送消息。
-
如何区分是公共消息还是指定窗口消息?
So,HTTPSession中储存的但窗口消息应该有以下约定:
-
Session Key 应该包含推送方ID标识和接收方ID标识,以此区分给多个窗口推送
-
项目清单:
功能点(已检测):
- 聊天功能
项目截图:
部署地址:
聊天工具箱地址 http://localhost:8080/wechat
关于售后&定制:
1.如果源码存在问题请联系我们,我们会进行重新检验和修复。
2.修改功能或者增加功能请联系我们,价格美丽。
评论0