Web IMKit 状态码

IMKit 不产生独立错误码:组件的数据与操作最终由 IMLib 完成,错误码统一来自 errors.json。组件层负责把错误映射为可展示的 UI 状态(提示、空态、重试、禁用)。

返回信封与错误形态​

层信封说明
客户端RcResult {code,data?,msg?}IMLib 统一返回;IMKit 读取 code / msg
WebSocketFrame {id?,type:'error',data:{code,message}}协议错误帧;SDK 转为 RcResult

UI 相关状态码​

错误码名称分类可重试UI 建议
1001INVALID_PARAMETER客户端 / 参数 / 权限否参数错误:检查目标会话、消息内容与选项,提示用户重试。
1002INVALID_TOKEN客户端 / 参数 / 权限否Token 无效:跳转登录,重新获取 Token 后重连。
1003FORBIDDEN客户端 / 参数 / 权限否无权限:提示无操作权限,隐藏相应入口。
1004USER_NOT_FOUND客户端 / 参数 / 权限否用户不存在:提示用户已注销或 ID 错误。
1005GROUP_NOT_FOUND客户端 / 参数 / 权限否群组不存在:提示群已解散,刷新会话列表。
1006NOT_GROUP_MEMBER客户端 / 参数 / 权限否未加入群组:提示先加入群组。
1007MESSAGE_TOO_LARGE客户端 / 参数 / 权限否消息体过大:压缩图片/文件或截断文本。
1008RATE_LIMITED客户端 / 参数 / 权限是发送过于频繁:展示「发送太快」并退避。
1009GROUP_MUTED客户端 / 参数 / 权限否已被禁言:禁用输入区并提示禁言状态。
1010SENSITIVE_WORD客户端 / 参数 / 权限否内容含敏感词:提示修改后重发。
1011BLOCKED客户端 / 参数 / 权限否拉黑关系:提示无法发送。
1012CHATROOM_NOT_FOUND客户端 / 参数 / 权限否聊天室不存在:退出聊天室页面。
1013CHATROOM_CLOSED客户端 / 参数 / 权限否聊天室已销毁:返回会话列表。
1014NOT_CHATROOM_MEMBER客户端 / 参数 / 权限否未加入聊天室:先加入再发送。
1015MEMBERSHIP_LIMIT客户端 / 参数 / 权限否成员数量超限:提示群/聊天室容量已满。
1016USER_BANNED客户端 / 参数 / 权限否账号封禁:跳转申诉或客服。
1017APP_DISABLED客户端 / 参数 / 权限否应用停用:提示联系管理员。
1022RECALL_EXPIRED客户端 / 参数 / 权限否超过撤回时限:隐藏撤回菜单或提示失败。
1023MESSAGE_ALREADY_RECALLED客户端 / 参数 / 权限否消息已撤回:替换为撤回占位。
1025QUOTA_EXCEEDED客户端 / 参数 / 权限是超出配额:提示稍后重试。
1026MESSAGE_NOT_EXPANDABLE客户端 / 参数 / 权限否提示用户后允许重试。
1027EXPANSION_LIMIT_EXCEEDED客户端 / 参数 / 权限否提示用户后允许重试。
1028REACTION_INVALID客户端 / 参数 / 权限否提示用户后允许重试。
1029REACTION_LIMIT_EXCEEDED客户端 / 参数 / 权限否提示用户后允许重试。
1030REACTION_USER_LIMIT_EXCEEDED客户端 / 参数 / 权限否提示用户后允许重试。
1031TAG_LIMIT_EXCEEDED客户端 / 参数 / 权限否提示用户后允许重试。
1032TAG_NOT_FOUND客户端 / 参数 / 权限否提示用户后允许重试。
1033TAG_CONVERSATION_LIMIT_EXCEEDED客户端 / 参数 / 权限否提示用户后允许重试。
1034CONVERSATION_NOT_FOUND客户端 / 参数 / 权限否提示用户后允许重试。
1035MESSAGE_REJECTED_BY_CALLBACK客户端 / 参数 / 权限否提示用户后允许重试。
3001SDK_NOT_CONNECTEDSDK 本地是长连接未就绪:展示离线状态并在 CONNECTED 后重试。
3002SDK_TIMEOUTSDK 本地是请求超时:展示重试按钮。
3003SDK_NETWORK_ERRORSDK 本地是网络错误:展示网络异常条,等待重连。
3004SDK_UNSUPPORTEDSDK 本地否当前平台不支持该能力:降级或隐藏入口。

展示策略​

场景建议展示组件入口
发送失败气泡旁失败图标 + 点击重发MessageStatusIndicator
连接断开顶部网络异常条;CONNECTED 后自动消失ChatView / 宿主页面
会话为空空态插画 + 引导文案ConversationListView
加载中骨架屏 / loading 态ConversationListView
被禁言输入区禁用 + 提示MessageInput
聊天室销毁提示后返回会话列表宿主路由

错误处理示例​

JavaScript (ESM)
const res = await client.sendTextMessage(1, 'user2', '你好,NI PaaS');
if (res.code !== 0) {
  if (res.code === 1009) showToast('你已被禁言');
  else if (res.code === 3001) showOfflineBanner();
  else markMessageFailed(res.code, res.msg);
}

把上述返回值映射为组件的状态属性(status / failed / disabled 等),不要直接弹原始错误码。

相关文档​