XuqmGroup-Web/docs-site/docs/server/errors.md
XuqmGroup 277e8ed7c6 feat(im): 添加即时消息SDK核心功能实现
- 实现了聊天消息发送功能,支持文本、图片、视频、音频、文件等多种消息类型
- 集成了文件上传下载功能,支持多媒体文件的传输和管理
- 添加了群组管理功能,包括创建群组、成员管理、权限控制等操作
- 实现了好友系统,支持好友添加、删除、分组等功能
- 集成了黑名单管理,提供用户屏蔽和解除屏蔽功能
- 添加了会话管理功能,支持对话列表、未读消息统计等
- 实现了历史消息查询和搜索功能
- 添加了实时连接状态管理和自动重连机制
2026-05-03 00:11:06 +08:00

106 行
2.5 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 错误码文档
---
## HTTP 错误码
| 状态码 | 说明 | 常见场景 |
|--------|------|----------|
| 200 | 成功 | 请求正常处理 |
| 400 | 请求参数错误 | 缺少必填字段、参数类型不匹配 |
| 401 | 未授权 | Token 无效、过期、未携带 |
| 403 | 禁止访问 | 权限不足、黑名单限制 |
| 404 | 资源不存在 | 用户不存在、群不存在、消息不存在 |
| 500 | 服务端内部错误 | 异常未捕获 |
所有接口统一返回格式:
```json
{
"code": 200,
"status": "OK",
"data": { ... },
"message": ""
}
```
业务错误时:
```json
{
"code": 400,
"status": "BAD_REQUEST",
"data": null,
"message": "参数错误userId 不能为空"
}
```
---
## IM 连接错误码
| 关闭码 | 说明 | 处理建议 |
|--------|------|----------|
| 1000 | 正常关闭 | 无需重连(如用户主动登出)|
| 1001 | 服务端关闭 | 尝试重连 |
| 1006 | 异常断开 | 自动重连 |
| 1008 | 策略违反(如 Token 无效)| 重新获取 Token 后重连 |
| 1011 | 服务端异常 | 指数退避重连 |
---
## SDK 错误码
### Android
| 错误 | 说明 |
|------|------|
| `XuqmSDK not initialized. Call XuqmSDK.initialize() first.` | 未调用初始化 |
| `IM not connected` | 发送消息时未连接 |
| `edit message failed` | 编辑消息接口返回空 |
| `revoke message failed` | 撤回消息接口返回空 |
### iOS
| 错误 | 说明 |
|------|------|
| `XuqmSDK not initialized. Call XuqmSDK.shared.initialize() first.` | 未调用初始化 |
### Web / Vue3 / 小程序
| 错误 | 说明 |
|------|------|
| `XuqmSDK not initialized. Call init() first.` | 未调用初始化 |
| `IM not connected` | IM 未连接时发送消息 |
| `IM token is empty` | 未登录或 Token 已清空 |
---
## 常见错误排查
### Q: 登录后 IM 无法连接
- 检查 `userSig` 是否有效(未过期、签名正确)
- 检查网络是否允许长连接(防火墙、代理)
- 检查 IM 连接地址是否正确
### Q: 发送消息返回 FAILED
- 检查 IM 连接状态
- 检查 `toId` 是否有效
- 检查 `appKey` 是否正确配置
### Q: 收不到消息
- 确认已订阅 `/user/queue/messages`
- 确认发送方和接收方使用同一 `appKey`
- 检查是否被对方拉黑
### Q: Token 401
- `userSig` 由服务端用 `appSecret` 签发,确保签名算法一致
- 检查 Token 是否在有效期内
- 检查 HTTP Header 中 `Authorization: Bearer {token}` 格式
[→ Server API 文档 →](/server/api)