Skip to content

紧急-P0级别重要度-单聊功能不完整 - 缺少 WebSocket 实时消息事件处理 #6

@Ink-dark

Description

@Ink-dark

问题描述

当前项目 HalloChat 的单聊功能在服务端实现不完整,主要表现为:

🚨 缺失的 WebSocket 实时消息功能

  1. 缺少 sendMessage 事件处理

    • 客户端 client/src/services/chatService.jssocket.emit('sendMessage', data)
    • 但服务端 server/src/socket.handler.js 中没有对应的 socket.on('sendMessage', ...) 处理
  2. 缺少实时输入状态事件

    • 缺少 typing / stopTyping 事件处理
  3. 缺少消息已读回执

    • 缺少 messageRead 事件处理
  4. 缺少消息送达回执

    • 缺少 messageReceived 事件处理

期望实现

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 - 必须实现

标签

  • enhancement
  • backend

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or requesthelp wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions