XuqmGroup-Web/docs-site/docs/server/errors.md
XuqmGroup 6cd938cfbc feat(android-sdk): 添加完整的IM客户端SDK实现
- 实现了Android SDK的完整IM功能接口,包括消息、群组、好友、会话等核心功能
- 添加了消息收发、历史记录、撤回编辑等完整的消息操作能力
- 实现了群组管理功能,包括创建、成员管理、权限设置等操作
- 添加了好友关系链管理,支持添加、删除、分组等操作
- 实现了会话管理功能,包括置顶、免打扰、已读状态等
- 添加了黑名单、资料管理、搜索等辅助功能
- 补齐了批量操作接口,提升客户端操作效率
- 实现了WebSocket连接管理和事件监听机制
- 添加了离线消息同步和状态管理功能
2026-05-02 22:57:55 +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 不能为空"
}
```
---
## WebSocket 错误码
| 关闭码 | 说明 | 处理建议 |
|--------|------|----------|
| 1000 | 正常关闭 | 无需重连(如用户主动登出)|
| 1001 | 服务端关闭 | 尝试重连 |
| 1006 | 异常断开 | 自动重连 |
| 1008 | 策略违反(如 Token 无效)| 重新获取 Token 后重连 |
| 1011 | 服务端异常 | 指数退避重连 |
---
## SDK 错误码
### Android
| 错误 | 说明 |
|------|------|
| `XuqmSDK not initialized. Call XuqmSDK.initialize() first.` | 未调用初始化 |
| `WebSocket 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.` | 未调用初始化 |
| `WebSocket not connected` | WebSocket 未连接时发送消息 |
| `IM token is empty` | 未登录或 Token 已清空 |
---
## 常见错误排查
### Q: 登录后 WebSocket 无法连接
- 检查 `userSig` 是否有效(未过期、签名正确)
- 检查网络是否允许 WebSocket防火墙、代理
- 检查 WebSocket 地址是否正确
### Q: 发送消息返回 FAILED
- 检查 WebSocket 连接状态
- 检查 `toId` 是否有效
- 检查 `appKey` 是否正确配置
### Q: 收不到消息
- 确认已订阅 `/user/queue/messages`
- 确认发送方和接收方使用同一 `appKey`
- 检查是否被对方拉黑
### Q: Token 401
- `userSig` 由服务端用 `appSecret` 签发,确保签名算法一致
- 检查 Token 是否在有效期内
- 检查 HTTP Header 中 `Authorization: Bearer {token}` 格式
[→ Server API 文档 →](./api)