ChatManager 负责消息域动作、查询与事件订阅

Constructors

Properties

key: "chatManager" = ...

Methods

  • 发送一条已创建的消息。文本、图片、文件、语音、视频、位置、命令、自定义和合并消息均通过该入口发送。

    事件触发:接收方(含发送方的其他设备)会收到 onMessage 事件。 附件类消息(图片/文件/语音/视频)会先自动上传到服务器,上传成功后再发送。

    Parameters

    Returns Promise<Message>

    发送成功后的消息对象。

    Code 含义 HTTP 处理建议 可重试
    1 消息发送已取消 - 确认 SDK 实例仍有效;如为用户主动取消,无需重试
    100 App Key 不合法 - 检查 SDK 初始化使用的 appKey
    110 参数无效 - 通过 ChatManager 的 create*Message 方法创建消息,确保发送者与当前用户一致,并检查附件数据和上传配置
    300 服务器不可达 - 等待连接成功后重试
    301 消息发送超时 - 检查网络连接后重试;重试前可根据 msgLocalId 查询业务侧发送状态
    303 消息发送失败 - 检查 details.serverCode 和 details.reason;若持续出现,请联系技术支持
    402 附件上传失败 - 检查文件、网络和上传权限后重试
    405 附件文件过大 - 压缩文件或更换更小的文件后重试
    406 附件内容不合规 - 更换合规文件后重试
    500 消息异常:编码失败 - 检查消息体、扩展字段和附件信息是否合法
    4 消息发送超过服务限制 - 降低发送频率、减少定向用户数量,或联系服务端提升配额
    108 Token 已过期 - 刷新 Token 并重新登录后发送
    202 消息发送鉴权失败 - 重新获取有效 Token 并登录
    210 无权限执行消息操作 - 检查账号权限、会话关系和服务开通状态
    213 当前登录态绑定到其他设备 - 检查多设备登录策略和设备绑定关系后重新登录
    214 登录设备数超过限制 - 退出其他设备或联系服务端提升设备数限制
    215 用户在群组或聊天室中被禁言 - 等待禁言解除或联系群组/聊天室管理员
    219 用户被全局禁言 - 联系管理员解除全局禁言
    220 当前登录设备发生变化 - 检查设备标识并重新登录
    221 非好友禁止发送消息 - 先添加对方为联系人,或调整应用的陌生人消息策略
    222 消息发送失败:被接收方拉黑 - 停止重试,并提示用户检查与接收方的关系状态
    305 消息服务不可用 - 检查控制台服务开通状态或联系技术支持
    501 消息包含违规内容 - 修改消息内容后重试
    505 相关消息服务未开通 - 在控制台开通对应服务后重试
    506 消息已过期 - 重新创建消息后发送
    507 当前用户不在消息白名单中 - 联系管理员将当前用户加入白名单
    508 消息被外部逻辑拦截 - 根据业务审核规则调整消息,或联系服务端排查
    509 消息发送过于频繁 - 降低发送频率后重试
    510 消息体超过大小限制 - 缩短消息内容、减少扩展字段或拆分消息后重试
    602 当前用户不在群组或聊天室中 - 加入目标群组或聊天室后重试
    603 无群组消息操作权限 - 检查群组角色和消息权限配置
    606 群组不存在 - 确认 groupId 正确且群组仍存在
    607 群组已禁用 - 恢复群组可用状态后重试
    1200 第三方内容审核拒绝 - 修改消息内容后重试
    1299 第三方服务拒绝消息 - 检查 details.reason,并联系对应第三方服务排查
  • 创建文本消息对象。创建后需调用 ChatManager.sendMessage 发送。

    Parameters

    Returns Message

    文本消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法的 conversationId、conversationType 和非空 content;receiverList 仅用于群聊或聊天室,needReadReceipt 不支持 chatRoom
  • 创建图片消息对象。支持传入本地文件或远程图片地址。

    Parameters

    Returns Message

    图片消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 至少传入 data 或 originalUrl,并确保图片元数据为合法类型和值
  • 创建文件消息对象。支持传入本地文件或远程文件地址。

    Parameters

    Returns Message

    文件消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 至少传入 data 或 originalUrl,并确保文件元数据合法
  • 创建语音消息对象。支持传入本地语音文件或远程语音地址。

    Parameters

    Returns Message

    语音消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 至少传入 data 或 originalUrl,并传入大于 0 的 duration
  • 创建视频消息对象。支持传入本地视频文件或远程视频地址。

    Parameters

    Returns Message

    视频消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 至少传入 data 或 originalUrl,并传入大于 0 的 duration
  • 创建位置消息对象。

    Parameters

    Returns Message

    位置消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法的 conversationId、conversationType、latitude 和 longitude
  • 创建命令消息对象。命令消息通常用于业务自定义控制信令。

    Parameters

    Returns Message

    命令消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法的 conversationId、conversationType 和非空 action
  • 创建自定义消息对象。可通过 eventparams 承载业务自定义内容。

    Parameters

    Returns Message

    自定义消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法的 conversationId、conversationType 和非空 event;params 使用字符串键值
  • 创建合并消息对象,用于发送聊天记录合集。

    Parameters

    Returns Message

    合并消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法的标题、摘要和 1 到 300 条可合并消息
    4 超过服务限制 - 减少合并消息嵌套层级后重试
    500 消息异常:编码失败 - 检查被合并消息的消息体和扩展字段是否合法
  • 从本地会话列表缓存中获取会话,支持通过 filter 过滤。

    Parameters

    Returns readonly ConversationItem[]

    匹配条件的会话数组。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 使用 SDK 上一次返回的 cursor,并确保 pageSize 为正整数、includeEmptyConversations 为布尔值
  • 设置当前正在浏览的会话。设置后,该会话收到在线消息时 SDK 仍会更新最后消息和列表排序,但不会累加本地未读数。该状态只保存在当前 SDK 会话内存中,切换页面或关闭会话时应调用 resetCurrentConversation()

    Parameters

    Returns void

    无返回值。

  • 重置当前正在浏览的会话。重置后,收到在线消息会按默认规则累加对应会话的本地未读数。

    Returns void

    无返回值。

  • 删除指定会话,可选择同时删除服务端漫游消息。 删除成功后,SDK 会同步删除本地会话列表缓存;如果本地会话列表发生变化,会触发 onConversationListUpdatereasonlocal

    Parameters

    Returns Promise<ConversationMutationResult>

    会话删除结果。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法会话 ID、会话类型,并确保 deleteRoamingMessages 为布尔值
  • 清空当前用户的所有会话和服务端漫游消息。 清空成功后,SDK 会同步清空本地 conversation/session-list 缓存;如果本地会话列表发生变化,会触发 onConversationListUpdatereasonlocal

    Returns Promise<void>

    清空完成后 resolve。

  • 在指定会话中置顶一条消息。

    事件触发:除当前操作设备外,会话成员及当前用户的其他设备会收到 onPinnedMessageChanged 事件(operation='pin');当前操作设备通过 Promise 处理成功结果。

    Parameters

    Returns Promise<void>

    置顶消息结果。

    Code 含义 HTTP 处理建议 可重试
    110 消息 ID 非法 - 修正请求参数或操作类型后重试
    4 置顶消息数量达到上限 - 降低用量或调整服务配额后重试
    110 待置顶消息不存在 - 确认目标资源存在后重试
  • 取消置顶指定会话中的一条消息。

    事件触发:除当前操作设备外,会话成员及当前用户的其他设备会收到 onPinnedMessageChanged 事件(operation='unpin');当前操作设备通过 Promise 处理成功结果。

    Parameters

    Returns Promise<void>

    取消置顶消息结果。

    Code 含义 HTTP 处理建议 可重试
    110 消息 ID 非法 - 修正请求参数或操作类型后重试
    110 待取消置顶消息不存在 - 确认目标资源存在后重试
  • 获取指定会话内的置顶消息列表。该接口不分页,不接收 messageId,最多返回 20 条。

    Parameters

    Returns Promise<PinnedMessageListResult>

    置顶消息列表。

    Code 含义 HTTP 处理建议 可重试
    111 当前服务端不支持获取置顶消息列表 - 修正请求参数或操作类型后重试
    110 置顶消息不存在 - 确认目标资源存在后重试
  • 注册消息域事件处理器。

    Parameters

    • id: string

      事件处理器唯一标识。

    • handlers: ChatEventHandlerMap

      消息事件处理器集合。

    可监听事件

    onMessage, onStreamMessage, onConversationListUpdate, onMessageReadReceipts, onMessageDelivered, onMessageRecalled, onMessageUpdated, onReactionChanged, onPinnedMessageChanged, onMultiDeviceContact, onMultiDeviceGroup, onMultiDeviceThread, onMultiDeviceConversation, onMultiDeviceMessageRemoved, onSyncDataStart, onSyncDataFinished

    ChatEventName

    Returns void

    无返回值。

  • 移除已注册的消息域事件处理器。

    Parameters

    • id: string

      事件处理器唯一标识。

    Returns void

    无返回值。

  • 清空指定会话的未读消息数。

    SDK 会优先更新本地会话 unreadCount 与 readAt,并在本地快照变化时派发 onConversationListUpdate,随后尽力同步服务端。 本地存在目标会话时,即使当前未连接或服务端同步失败,该方法也会按本地清理成功处理;本地不存在目标会话且远端同步失败时才会抛出错误。 该动作不会发送给会话对端;只有当前用户的其他设备会收到 operation 为 CONVERSATION_UNREAD_MESSAGE_COUNT_CLEAREDonMultiDeviceConversation

    Parameters

    Returns Promise<void>

    标记完成后 resolve。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法会话 ID,并使用 singleChat 或 groupChat
    201 未登录 - 登录或刷新 token 后重试
    300 未连接服务器 - 恢复连接后重试
    500 会话中无消息 - 修正请求参数或操作类型后重试
  • 批量发送消息已读回执。仅支持同一个会话内的 1 至 50 条单聊或群聊消息。

    该接口不会推进会话 readAt,也不会直接修改本地 unreadCount。 事件触发:消息原始发送方会收到 onMessageReadReceipts;本地调用方不会收到该事件。

    Parameters

    • params: SendMessageReadReceiptsParams

      批量消息已读参数:conversationId 为目标会话 ID,conversationType 仅支持 singleChatgroupChatmessageIds 为同一会话内 1 至 50 条非空消息 ID。

    Returns Promise<void>

    全部已读回执发送完成后 resolve。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 conversationId、singleChat/groupChat 会话类型和同一会话内 1 至 50 条非空 messageIds
    110 只能对接收的消息发送已读回执 - 修正请求参数或操作类型后重试
    300 未连接服务器 - 恢复连接后重试
  • 清空所有会话的未读消息数。

    本机调用成功后仅更新本地 unread 快照并派发 onConversationListUpdate; 其他设备收到 operation 为 ALL_CONVERSATIONS_UNREAD_MESSAGE_COUNT_CLEAREDonMultiDeviceConversation

    Returns Promise<void>

    清空成功后无返回值。

    Code 含义 HTTP 处理建议 可重试
    201 未登录 - 登录或刷新 token 后重试
    300 未连接服务器 - 恢复连接后重试
    500 会话中无消息 - 修正请求参数或操作类型后重试
  • 撤回一条已发送消息。

    事件触发:除当前操作设备外,会话成员及撤回者的其他设备会收到 onMessageRecalled;当前操作设备通过 Promise 处理成功结果。 注意:默认 2 分钟内可撤回(可在控制台配置最长 7 天);群主/管理员可撤回他人消息;除 CMD 外所有类型均支持。

    Parameters

    Returns Promise<ChatActionResult>

    撤回动作结果。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法会话定位参数和待撤回消息 ID
    110 消息无效或未发送成功 - 修正请求参数或操作类型后重试
    201 未登录 - 登录或刷新 token 后重试
    300 未连接服务器 - 恢复连接后重试
    504 超过撤回时间限制 - 降低用量或调整服务配额后重试
    505 撤回功能未开通 - 确认已开通对应服务后重试
  • 编辑一条消息内容。当前仅支持文本消息和自定义消息。

    事件触发:除当前操作设备外,会话成员及编辑者的其他设备会收到 onMessageUpdated;当前操作设备通过 Promise 处理成功结果。 注意:最多编辑 10 次;编辑后消息漫游有效期重新计算。

    Parameters

    Returns Promise<Message>

    编辑后的消息对象。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法会话定位参数和待编辑消息 ID
    111 操作不支持 - 仅传入 type 为 text 或 custom 的消息内容
    110 消息无效 - 修正请求参数或操作类型后重试
    111 操作不支持 - 仅传入 type 为 text 或 custom 的消息内容
    201 未登录 - 登录或刷新 token 后重试
    210 无权编辑该消息 - 确认关系与操作权限后重试
    300 未连接服务器 - 恢复连接后重试
    511 消息编辑失败 - 稍后重试;持续失败时联系服务端排查
  • 从服务端获取历史消息。

    Parameters

    Returns Promise<MessageHistoryPage>

    历史消息分页结果。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法会话定位参数,并确保 pageSize 为正整数
    505 消息漫游服务未开通 - 确认已开通对应服务后重试
    110 分页参数超限 - 降低用量或调整服务配额后重试
  • 服务端消息搜索,根据关键词和过滤条件搜索历史消息。

    Parameters

    Returns Promise<SearchMessagesResult>

    搜索结果。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 检查关键词列表(非空、最多5个、每个≤150字符)、conversationId/conversationType 须配对使用、startTime/endTime 须同时提供
    110 搜索参数错误 400 检查请求参数是否符合搜索接口要求
    202 token 无效或过期 401 重新登录获取有效 token
    505 消息搜索服务未开通 403 在环信 Console 开通 Message Search 服务
    110 appKey 对应应用不存在 404 确认 appKey 配置正确
    303 服务端内部错误或索引服务不可用 500 稍后重试,若持续失败请联系技术支持
  • 下载消息附件,适用于图片、语音、视频和文件等附件消息。

    Parameters

    Returns Promise<MessageAttachmentDownloadResult>

    附件下载结果。

    Code 含义 HTTP 处理建议 可重试
    401 附件无效或消息类型不支持下载 - 仅对包含远程附件地址的图片、语音、视频或文件消息调用
    400 附件不存在 404 确认目标资源存在后重试
    401 附件无效或消息类型不支持下载 - 修正请求参数或操作类型后重试
    403 附件下载失败 - 稍后重试;持续失败时联系服务端排查
    407 附件已过期 404 根据错误原因修正后重试
  • 下载并解析合并消息内容,返回合并消息中的子消息列表。

    Parameters

    • params: DownloadCombineMessageInput

      合并消息解析参数;可传完整合并消息,也可传合并消息体中的最小下载参数。

    Returns Promise<readonly Message[]>

    合并消息中的原始消息列表。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入 type 为 combine 且包含有效 url 的消息,或直接传入合并消息体中的有效 url/secret
    110 消息为空 - 修正请求参数或操作类型后重试
    500 消息不是合并消息类型 - 修正请求参数或操作类型后重试
    401 合并消息解析失败 - 稍后重试;持续失败时联系服务端排查
    403 合并消息下载失败 - 稍后重试;持续失败时联系服务端排查
  • 删除服务端历史消息,可按消息 ID 列表或时间戳删除。

    Parameters

    Returns Promise<void>

    删除完成后 resolve。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入非空 messageIds,或传入大于 0 的 beforeTimestamp
    505 消息漫游服务未开通 - 确认已开通对应服务后重试
    112 删除消息数量超限 - 降低用量或调整服务配额后重试
  • 获取指定群消息的已读成员列表。

    启用 enableUserInfoSync 后,SDK 优先读取本地用户资料缓存。仅当用户资料缓存未命中时,SDK 才会同时补拉用户资料和群名片,并通过 onUserInfoUpdated(当前用户为 onOwnInfoUpdated)派发补拉到的资料。未启用时,user 仅保证包含 userId

    Parameters

    Returns Promise<GroupMessageReadUsersResult>

    群消息已读成员分页结果。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 groupId、messageId,并确保 pageSize 为正整数
    500 消息不存在 - 确认目标资源存在后重试
  • 批量获取群消息已读回执详情。

    messageIds 必须为非空数组;SDK 使用单次批量 REST 请求查询,不会拆分为多次请求。 服务端当前最多接受 20 条,超限时该 Promise 会以服务端 illegal_argument 错误 reject。

    Parameters

    Returns Promise<readonly MessageReadReceiptDetail[]>

    按消息返回的已读人数详情。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 groupId 和非空 messageIds 列表
    110 参数无效 400 检查请求体与消息 ID;若超过 20 条,请由调用方拆分后重试
    202 用户鉴权失败 401 更新为有效 token 后重试
    210 用户无权限 403 确认用户已加入目标群并具备查询权限
    303 服务内部异常 500 稍后重试;若持续失败,请联系服务端排查
  • 为消息添加 Reaction。

    事件触发:会话中的所有成员会收到 onReactionChanged 事件。 注意:仅支持单聊和群聊,不支持聊天室;每个用户对同一消息的同一 Reaction 只能添加一次。

    Parameters

    Returns Promise<void>

    添加完成后 resolve。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 messageId 和非空 reaction
    1301 当前用户已经操作过该 Reaction - 根据错误原因修正后重试
    1300 Reaction 数量达到上限 - 降低用量或调整服务配额后重试
    602 当前用户不在该群组中 - 确认关系与操作权限后重试
    1302 Reaction 操作非法 - 修正请求参数或操作类型后重试
    505 Reaction 服务未开通 - 确认已开通对应服务后重试
    302 Reaction 服务繁忙 - 稍后重试;持续失败时联系服务端排查
  • 删除当前用户在消息上添加的 Reaction。

    事件触发:会话中的所有成员会收到 onReactionChanged 事件。

    Parameters

    Returns Promise<void>

    删除完成后 resolve。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 messageId 和非空 reaction
    505 Reaction 服务未开通 - 确认已开通对应服务后重试
    1302 Reaction 操作非法 - 修正请求参数或操作类型后重试
  • 获取一条或多条消息的 Reaction 汇总列表。

    Parameters

    Returns Promise<readonly MessageReactionListItem[]>

    消息 Reaction 汇总列表。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 messageId;conversationType 为 groupChat 时同时传入 groupId
    505 Reaction 服务未开通 - 确认已开通对应服务后重试
    600 groupId 无效 - 修正请求参数或操作类型后重试
  • 获取指定消息 Reaction 的用户详情。

    Parameters

    Returns Promise<MessageReactionDetailPage>

    Reaction 用户详情分页结果。

    Code 含义 HTTP 处理建议 可重试
    110 参数无效 - 传入合法 messageId、非空 reaction,并确保 pageSize 为正整数
    505 Reaction 服务未开通 - 确认已开通对应服务后重试
    1302 Reaction 操作非法 - 修正请求参数或操作类型后重试
  • 获取翻译服务支持的语言列表。

    Returns Promise<readonly TranslationLanguage[]>

    翻译支持语言列表。

    Code 含义 HTTP 处理建议 可重试
    505 翻译服务未开通 - 确认已开通对应服务后重试
  • 翻译文本消息内容到一个或多个目标语言。

    Parameters

    Returns Promise<MessageTranslationResult>

    消息翻译结果。

    Code 含义 HTTP 处理建议 可重试
    1110 目标语言不合法 - 仅传入包含非空文本内容的文本消息,并指定至少一个合法目标语言代码
    1110 翻译文本过长 - 根据错误原因修正后重试
    1110 目标语言不合法 - 修正请求参数或操作类型后重试
    1111 翻译服务未开通 - 确认已开通对应服务后重试
    1112 翻译服务配额已达上限 - 降低用量或调整服务配额后重试
    1113 翻译服务异常 - 稍后重试;持续失败时联系服务端排查
  • 将已发送或已接收的语音消息体转为文字。

    Parameters

    Returns Promise<VoiceToTextResult>

    语音转文字结果。

    Code 含义 HTTP 处理建议 可重试
    407 语音文件无效 - 传入带有效 url 的语音消息体,并确保 format、sampleRate、bitsPerSample、channels 类型合法
    410 语音文件不存在 - 确认语音消息已成功上传且 url 有效
    202 用户鉴权失败 - 刷新 token 后重试
    410 语音文件不存在 - 确认语音消息已成功上传且 url 有效
    407 语音文件无效 - 更换合法语音文件后重试
    408 语音时长超过限制 - 缩短语音时长后重试
    411 语音文件过大 - 压缩或缩短语音文件后重试
    505 语音转文字服务未开通 - 开通服务后重试
    4 超过服务限制 - 稍后重试或提升服务配额
    409 语音转文字失败 - 稍后重试;如果持续失败,联系服务端排查
  • 上传本地语音文件并转换为文字。

    Parameters

    Returns Promise<VoiceToTextResult>

    语音转文字结果。

    Code 含义 HTTP 处理建议 可重试
    407 语音文件无效 - 传入浏览器 File 或小程序 MiniAppFile,并确保语音识别参数类型合法
    110 参数无效:缺少必需字段 - 在支持上传的环境中调用,或为当前平台配置上传适配器
    202 用户鉴权失败 - 刷新 token 后重试
    402 上传文件错误 - 检查网络和文件后重试
    407 语音文件无效 - 更换合法语音文件后重试
    408 语音时长超过限制 - 缩短语音时长后重试
    411 语音文件过大 - 压缩或缩短语音文件后重试
    505 语音转文字服务未开通 - 开通服务后重试
    4 超过服务限制 - 稍后重试或提升服务配额
    409 语音转文字失败 - 稍后重试;如果持续失败,联系服务端排查