线聊天系统
1.移动端给客服发送消息,客户在bs端后台收到消息并回复 2.左侧聊天栏显示最新的消息和消息时间 3.需要查看对方是否已读自己的消息
使用websocket进行消息推送 优点:个人感觉开发简单,不需要部署第三方服务 缺点:无状态,页面每刷新一次就会产生一个新的session,某些情况下不稳定 忍受它的缺点
1.发送消息意味着需要发送人和接收人两个角色,同时需要对用户进行持久化 2.对接收人(发送人)来说,显示最新的消息和时间,就意味着显示双方消息记录的最后提条消息的内容和发送时间 3.消息已读意味着打开聊天对话框就要告诉对方,自己已读对方的消息。这里会产生两种情况: ①己方在线对方未在线,需要在对方上线时(即打开对话框)告诉对方自己已读对方的消息 :存储消息数据,在自己打开对框的时候,获取聊天记录,并将聊天记录中对方给自己发的消息状态全部更新为已读。
②双方同时在线(聊天对话界面),这里稍微有点操作,那就是如何让双方及时的知道对方已读自己的消息。 : 场景:当自己给对方发送消息时,自己看到自己发给对方的消息已读(即便对方不给自己发消息) : 1.自己对对方发消息时,更新对方发给自己的全部消息为已读,对方读取消息 2.对方读取消息时,让对方告诉自己对方已读自己的消息,自己进行已读展示,通过一个共用接 口即可,当对方调用指定接口时,让对方告诉自己对方已读即可。 4.利用mongodb进行用户以及聊天记录的存储
消息聊天演示:
消息时间演示:
消息未读演示:
PC端:vue+springboot 移动端:html+springboot
1.sys_user
2.chat_msg
说明:
1.web端
引入依赖
配置yml
1.前端代码
index.vue
message.js
systemApplication.js
2.后端代码
WebSocketServer
ChatController
ChatService
ChatMsg
SysUser
2.移动端
1.前端代码:
说明:userid在登录系统时存储在了cookie中
GBCookie.js
2.后端代码
引入mongodb依赖
yml配置
WxChatController
ChatService
ChatServiceImpl
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179383.html原文链接:https://javaforall.cn
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/11625.html