websocket实现私聊、群聊
主流程
连接websocket
携带自身 id 连接 websocket,服务端记录用户获取会话列表
分别获取好友列表、群列表、最近会话列表阅读消息
根据会话获取历史消息,并将选中会话变为已读发送消息
消息发送后,服务端将消息返回给发送者作为发送成功的依据,并将消息处理后转发给所有接收者,并记录聊天记录接收消息
判断接收到的消息是不是自己发的。如果是,则所谓消息发送成功的依据去处理;如果不是,继续判断用户是不是在此私聊/群聊的聊天界面,发出不同的消息提醒
连接 websocket
携带自身 id 连接 websocket
1 | let ws = new WebSocket("ws://127.0.0.1:8080/" + uid); |
发送消息
1 | // 消息格式 |
1 | ws.send(JSON.stringify(msg)); |
发送表情
发送图片
发送音频
发送地图
接收消息
1 | // 消息格式 |
1 | ws.onmessage = (e) => { |
标签页标题提醒
1 | document.title = "【新消息3条】网页标题"; |
消息提示音
1 | <audio ref="audioBox" src="/system/audio/msg.mp3" id="msgAudio"></audio>; |
1 | const audio = document.getElementById("msgAudio"); |
调用 audio.play()方法之前,用户必须先和页面有交互,否则调用失败
微信小程序 消息推送
引用站外地址
微信小程序 消息推送
给个人、企业和组织提供业务服务与用户管理能力的全新服务平台。
uniapp 统一消息推送
引用站外地址
uni-push2 统一推送
一个在线的socket下行服务,无论app、小程序、web,只要在线,都可以从服务器推送消息。