vue3-homework/PRIVATE_MESSAGE_DEBUG.md

134 lines
3.2 KiB
Markdown
Raw Normal View History

2025-08-01 00:59:37 +08:00
# 私聊消息调试指南
## 🔍 问题诊断步骤
### 1. 检查后端服务
确保后端服务正在运行:
```bash
cd ws-begin
mvn spring-boot:run
```
### 2. 检查前端连接
1. 打开浏览器开发者工具F12
2. 访问 `http://localhost:5173/test`
3. 查看 Console 标签页的输出
### 3. 登录测试
1. 输入用户IDuser1
2. 点击"登录"按钮
3. 检查控制台输出:
```
WebSocket 连接成功
开始订阅私聊消息: /user/queue/private 用户: user1
私聊消息订阅成功: user1
```
### 4. 多用户测试
1. 打开两个浏览器窗口(或一个无痕窗口)
2. 分别以不同用户登录:
- 窗口1user1
- 窗口2user2
3. 确保两个用户都出现在"在线用户"列表中
### 5. 发送私聊测试
1. 在用户1的窗口中
- 选择用户user2
- 输入消息Hello user2
- 点击"发送"
2. 检查控制台输出:
```
发送私聊消息: {content: "Hello user2", sender: "user1", receiver: "user2"}
```
### 6. 接收私聊测试
在用户2的窗口中查看控制台
```
=== 收到私聊消息 ===
消息内容: {content: "Hello user2", sender: "user1", receiver: "user2", type: "private", timestamp: "..."}
私聊消息列表更新,当前数量: 1
```
## 🛠️ 调试工具
### 使用"调试信息"按钮
点击私聊区域的"调试信息"按钮,会输出:
- 登录状态
- 当前用户
- 连接状态
- 订阅状态
- 在线用户列表
- 私聊消息数量
### 后端日志检查
查看后端控制台输出:
```
收到私聊消息: user1 -> user2: Hello user2
用户 user1 已连接会话ID: xxx
当前在线用户数: 2
```
## 🚨 常见问题
### 1. 私聊消息不更新
**可能原因:**
- 重复订阅导致混乱
- 订阅时机错误
- 用户未正确登录
**解决方案:**
1. 刷新页面重新登录
2. 检查控制台是否有订阅成功的日志
3. 确保两个用户都已登录
### 2. 发送消息无响应
**可能原因:**
- 接收者不在线
- WebSocket 连接断开
- 后端服务未启动
**解决方案:**
1. 检查接收者是否在线用户列表中
2. 查看网络标签页是否有 WebSocket 连接
3. 确认后端服务正常运行
### 3. 重复消息
**可能原因:**
- 页面重复订阅
- 浏览器缓存问题
**解决方案:**
1. 刷新页面
2. 清除浏览器缓存
3. 使用无痕模式测试
## 📋 测试检查表
- [ ] 后端服务启动成功
- [ ] 前端服务启动成功
- [ ] WebSocket 连接成功
- [ ] 用户登录成功
- [ ] 私聊消息订阅成功
- [ ] 多用户在线显示正确
- [ ] 发送私聊消息成功
- [ ] 接收私聊消息成功
- [ ] 消息显示在界面上
## 🔧 技术细节
### 订阅路径
- 前端订阅:`/user/queue/private`
- 后端发送:`convertAndSendToUser(userId, "/queue/private", message)`
### 消息流程
1. 前端发送:`/app/sendToUser`
2. 后端处理:`MessageController.sendToUser()`
3. 后端发送:`simpMessagingTemplate.convertAndSendToUser()`
4. 前端接收:`/user/queue/private` 订阅回调
### 关键日志
查找以下关键日志来诊断问题:
- `私聊消息订阅成功`
- `收到私聊消息`
- `发送私聊消息`
- `私聊消息列表更新`