问题描述
当前项目 HalloChat 的单聊功能在服务端实现不完整,主要表现为:
🚨 缺失的 WebSocket 实时消息功能
-
缺少 sendMessage 事件处理
- 客户端
client/src/services/chatService.js 有 socket.emit('sendMessage', data)
- 但服务端
server/src/socket.handler.js 中没有对应的 socket.on('sendMessage', ...) 处理
-
缺少实时输入状态事件
- 缺少
typing / stopTyping 事件处理
-
缺少消息已读回执
-
缺少消息送达回执
期望实现
在 server/src/socket.handler.js 中补充以下 WebSocket 事件:
// 发送即时消息
socket.on('sendMessage', async (data) => {
// 1. 验证接收者
// 2. 保存消息到 MongoDB
// 3. 实时推送给接收者
io.to(receiverId).emit('newMessage', message);
// 4. 发送送达回执
socket.emit('messageReceived', { messageId });
});
// 输入状态同步
socket.on('typing', ({ receiverId }) => {
io.to(receiverId).emit('userTyping', { userId: socket.user.id });
});
// 已读回执
socket.on('messageRead', async ({ messageId }) => {
// 更新已读状态并推送
});
优先级
P0 - 必须实现
标签
问题描述
当前项目 HalloChat 的单聊功能在服务端实现不完整,主要表现为:
🚨 缺失的 WebSocket 实时消息功能
缺少
sendMessage事件处理client/src/services/chatService.js有socket.emit('sendMessage', data)server/src/socket.handler.js中没有对应的socket.on('sendMessage', ...)处理缺少实时输入状态事件
typing/stopTyping事件处理缺少消息已读回执
messageRead事件处理缺少消息送达回执
messageReceived事件处理期望实现
在
server/src/socket.handler.js中补充以下 WebSocket 事件:优先级
P0 - 必须实现
标签