发送一条已创建的消息。文本、图片、文件、语音、视频、位置、命令、自定义和合并消息均通过该入口发送。
事件触发:接收方(含发送方的其他设备)会收到 onMessage 事件。
附件类消息(图片/文件/语音/视频)会先自动上传到服务器,上传成功后再发送。
待发送消息对象。
Optionaloptions: SendMessageOptions发送过程回调。
发送成功后的消息对象。
| 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 发送。
文本消息创建参数。
文本消息对象。
创建图片消息对象。支持传入本地文件或远程图片地址。
图片消息创建参数。
图片消息对象。
创建语音消息对象。支持传入本地语音文件或远程语音地址。
语音消息创建参数。
语音消息对象。
创建视频消息对象。支持传入本地视频文件或远程视频地址。
视频消息创建参数。
视频消息对象。
创建命令消息对象。命令消息通常用于业务自定义控制信令。
命令消息创建参数。
命令消息对象。
创建自定义消息对象。可通过 event 与 params 承载业务自定义内容。
自定义消息创建参数。
自定义消息对象。
从本地会话列表缓存中获取会话,支持通过 filter 过滤。
Optionalfilter: ConversationFilter可选过滤条件。
匹配条件的会话数组。
设置当前正在浏览的会话。设置后,该会话收到在线消息时 SDK 仍会更新最后消息和列表排序,但不会累加本地未读数。该状态只保存在当前 SDK 会话内存中,切换页面或关闭会话时应调用 resetCurrentConversation()。
当前正在浏览的会话定位参数。
无返回值。
重置当前正在浏览的会话。重置后,收到在线消息会按默认规则累加对应会话的本地未读数。
无返回值。
主动向服务端刷新会话列表,并返回刷新后的会话列表。
Optionalparams: RefreshSessionListParams刷新会话列表的选项。
刷新后的会话列表。
删除指定会话,可选择同时删除服务端漫游消息。
删除成功后,SDK 会同步删除本地会话列表缓存;如果本地会话列表发生变化,会触发 onConversationListUpdate,reason 为 local。
删除会话参数。
会话删除结果。
设置或取消设置会话置顶状态。
会话置顶参数。
会话置顶变更结果。
为单个或多个会话添加标记。
会话标记参数。
会话标记添加结果。
从单个或多个会话移除标记。
会话标记参数。
会话标记移除结果。
清空当前用户的所有会话和服务端漫游消息。
清空成功后,SDK 会同步清空本地 conversation/session-list 缓存;如果本地会话列表发生变化,会触发 onConversationListUpdate,reason 为 local。
清空完成后 resolve。
在指定会话中置顶一条消息。
事件触发:除当前操作设备外,会话成员及当前用户的其他设备会收到 onPinnedMessageChanged 事件(operation='pin');当前操作设备通过 Promise 处理成功结果。
置顶消息参数。
置顶消息结果。
取消置顶指定会话中的一条消息。
事件触发:除当前操作设备外,会话成员及当前用户的其他设备会收到 onPinnedMessageChanged 事件(operation='unpin');当前操作设备通过 Promise 处理成功结果。
取消置顶消息参数。
取消置顶消息结果。
获取指定会话内的置顶消息列表。该接口不分页,不接收 messageId,最多返回 20 条。
会话定位参数。
置顶消息列表。
注册消息域事件处理器。
事件处理器唯一标识。
消息事件处理器集合。
onMessage, onStreamMessage, onConversationListUpdate, onMessageReadReceipts, onMessageDelivered, onMessageRecalled, onMessageUpdated, onReactionChanged, onPinnedMessageChanged, onMultiDeviceContact, onMultiDeviceGroup, onMultiDeviceThread, onMultiDeviceConversation, onMultiDeviceMessageRemoved, onSyncDataStart, onSyncDataFinished
无返回值。
移除已注册的消息域事件处理器。
事件处理器唯一标识。
无返回值。
清空指定会话的未读消息数。
SDK 会优先更新本地会话 unreadCount 与 readAt,并在本地快照变化时派发 onConversationListUpdate,随后尽力同步服务端。
本地存在目标会话时,即使当前未连接或服务端同步失败,该方法也会按本地清理成功处理;本地不存在目标会话且远端同步失败时才会抛出错误。
该动作不会发送给会话对端;只有当前用户的其他设备会收到 operation 为
CONVERSATION_UNREAD_MESSAGE_COUNT_CLEARED 的 onMultiDeviceConversation。
会话定位参数。
标记完成后 resolve。
批量发送消息已读回执。仅支持同一个会话内的 1 至 50 条单聊或群聊消息。
该接口不会推进会话 readAt,也不会直接修改本地 unreadCount。
事件触发:消息原始发送方会收到 onMessageReadReceipts;本地调用方不会收到该事件。
批量消息已读参数:conversationId 为目标会话 ID,conversationType 仅支持 singleChat 或 groupChat,messageIds 为同一会话内 1 至 50 条非空消息 ID。
全部已读回执发送完成后 resolve。
清空所有会话的未读消息数。
本机调用成功后仅更新本地 unread 快照并派发 onConversationListUpdate;
其他设备收到 operation 为 ALL_CONVERSATIONS_UNREAD_MESSAGE_COUNT_CLEARED 的
onMultiDeviceConversation。
清空成功后无返回值。
撤回一条已发送消息。
事件触发:除当前操作设备外,会话成员及撤回者的其他设备会收到 onMessageRecalled;当前操作设备通过 Promise 处理成功结果。
注意:默认 2 分钟内可撤回(可在控制台配置最长 7 天);群主/管理员可撤回他人消息;除 CMD 外所有类型均支持。
撤回消息参数。
撤回动作结果。
编辑一条消息内容。当前仅支持文本消息和自定义消息。
事件触发:除当前操作设备外,会话成员及编辑者的其他设备会收到 onMessageUpdated;当前操作设备通过 Promise 处理成功结果。
注意:最多编辑 10 次;编辑后消息漫游有效期重新计算。
编辑消息参数。
编辑后的消息对象。
从服务端获取历史消息。
历史消息查询参数。
历史消息分页结果。
服务端消息搜索,根据关键词和过滤条件搜索历史消息。
搜索参数。
搜索结果。
| 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 | 稍后重试,若持续失败请联系技术支持 | 是 |
下载消息附件,适用于图片、语音、视频和文件等附件消息。
附件下载参数。
附件下载结果。
下载并解析合并消息内容,返回合并消息中的子消息列表。
合并消息解析参数;可传完整合并消息,也可传合并消息体中的最小下载参数。
合并消息中的原始消息列表。
删除服务端历史消息,可按消息 ID 列表或时间戳删除。
删除历史消息参数。
删除完成后 resolve。
获取指定群消息的已读成员列表。
启用 enableUserInfoSync 后,SDK 优先读取本地用户资料缓存。仅当用户资料缓存未命中时,SDK 才会同时补拉用户资料和群名片,并通过 onUserInfoUpdated(当前用户为 onOwnInfoUpdated)派发补拉到的资料。未启用时,user 仅保证包含 userId。
群消息已读成员查询参数。
群消息已读成员分页结果。
批量获取群消息已读回执详情。
messageIds 必须为非空数组;SDK 使用单次批量 REST 请求查询,不会拆分为多次请求。
服务端当前最多接受 20 条,超限时该 Promise 会以服务端 illegal_argument 错误 reject。
群组 ID 与非空消息 ID 列表。
按消息返回的已读人数详情。
为消息添加 Reaction。
事件触发:会话中的所有成员会收到 onReactionChanged 事件。
注意:仅支持单聊和群聊,不支持聊天室;每个用户对同一消息的同一 Reaction 只能添加一次。
添加 Reaction 参数。
添加完成后 resolve。
删除当前用户在消息上添加的 Reaction。
事件触发:会话中的所有成员会收到 onReactionChanged 事件。
删除 Reaction 参数。
删除完成后 resolve。
获取一条或多条消息的 Reaction 汇总列表。
Reaction 汇总查询参数。
消息 Reaction 汇总列表。
获取指定消息 Reaction 的用户详情。
Reaction 详情查询参数。
Reaction 用户详情分页结果。
翻译文本消息内容到一个或多个目标语言。
消息翻译参数。
消息翻译结果。
将已发送或已接收的语音消息体转为文字。
语音消息体。
OptionalvoiceParams: VoiceParams语音识别参数。
语音转文字结果。
| Code | 含义 | HTTP | 处理建议 | 可重试 |
|---|---|---|---|---|
| 407 | 语音文件无效 | - | 传入带有效 url 的语音消息体,并确保 format、sampleRate、bitsPerSample、channels 类型合法 | 否 |
| 410 | 语音文件不存在 | - | 确认语音消息已成功上传且 url 有效 | 否 |
| 202 | 用户鉴权失败 | - | 刷新 token 后重试 | 是 |
| 410 | 语音文件不存在 | - | 确认语音消息已成功上传且 url 有效 | 否 |
| 407 | 语音文件无效 | - | 更换合法语音文件后重试 | 否 |
| 408 | 语音时长超过限制 | - | 缩短语音时长后重试 | 否 |
| 411 | 语音文件过大 | - | 压缩或缩短语音文件后重试 | 否 |
| 505 | 语音转文字服务未开通 | - | 开通服务后重试 | 否 |
| 4 | 超过服务限制 | - | 稍后重试或提升服务配额 | 是 |
| 409 | 语音转文字失败 | - | 稍后重试;如果持续失败,联系服务端排查 | 是 |
上传本地语音文件并转换为文字。
本地语音文件。
OptionalvoiceParams: VoiceParams语音识别参数。
语音转文字结果。
| Code | 含义 | HTTP | 处理建议 | 可重试 |
|---|---|---|---|---|
| 407 | 语音文件无效 | - | 传入浏览器 File 或小程序 MiniAppFile,并确保语音识别参数类型合法 | 否 |
| 110 | 参数无效:缺少必需字段 | - | 在支持上传的环境中调用,或为当前平台配置上传适配器 | 否 |
| 202 | 用户鉴权失败 | - | 刷新 token 后重试 | 是 |
| 402 | 上传文件错误 | - | 检查网络和文件后重试 | 是 |
| 407 | 语音文件无效 | - | 更换合法语音文件后重试 | 否 |
| 408 | 语音时长超过限制 | - | 缩短语音时长后重试 | 否 |
| 411 | 语音文件过大 | - | 压缩或缩短语音文件后重试 | 否 |
| 505 | 语音转文字服务未开通 | - | 开通服务后重试 | 否 |
| 4 | 超过服务限制 | - | 稍后重试或提升服务配额 | 是 |
| 409 | 语音转文字失败 | - | 稍后重试;如果持续失败,联系服务端排查 | 是 |
ChatManager 负责消息域动作、查询与事件订阅