聊天室消息

大约 8 分钟

聊天室消息

应用场景

  • 多用户聊天室内沟通:聊天室中的成员通过收发消息进行沟通。
  • App 管理员向聊天室发消息:App 管理员通过调用 RESTful API 在聊天室内发送消息。

消息类型

类型
描述
文本消息文本消息的内容是文本,包含超链接和表情符号等。表情消息基于文本消息实现。
文本消息大小限制为 5 KB。
位置消息位置消息需要第三方的地图服务提供经纬度信息。接收方接收到位置消息,通过经纬度信息可以在第三方的地图服务中显示位置。
透传消息透传消息可视为命令消息。通过发送这条命令给对方,通知对方要执行的操作,对方收到消息后系统可以自定义处理。
- 透传消息不会在 UI 上展示。
- 消息大小限制为 5 KB。
- 你可以使用透传消息更新头像和昵称以及进行状态同步等。
透传消息不会存入本地数据库。
图片消息图片消息是附件消息,需要先将图片上传至消息服务器。接收方收到图片时自动下载图片缩略图。
图片默认不能超过 10 MB,图片消息大小限制为 5 KB。
语音消息语音消息是附件消息,需要先将语音上传至消息服务器。接收方收到语音时自动下载语音。
音频文件默认不能超过 10 MB,音频消息大小限制为 5 KB。
视频消息视频消息是附件消息,需要先将视频上传至消息服务器。接收方收到视频时自动下载视频缩略图,点击下载视频消息。
- 对于 Web 端,视频消息没有缩略图。
- 视频文件默认不能超过 10 MB,视频消息大小限制为 5 KB。
文件消息文件消息是附件消息,需要先将文件上传至消息服务器。
附件大小不能超过 10 MB,文件消息大小限制为 5 KB。
自定义消息开发者自定义的消息类型。自定义消息支持设置类型名称,开发者可以添加多种自定义消息。
- 自定义消息大小限制为 5 KB。
- 自定义消息的使用场景:红包消息、模板消息等。

提示

  1. 默认情况下,消息附件,例如图片、音频、视频和其他文件不能超过 10 MB,可存储 7 天。若要提升其中一个上限,请联系商务。
  2. 当基础的消息类型不满足需求时,可以使用消息自定义扩展增强基础消息类型,典型的用例是发送引用较早文本或图像消息的消息。使用扩展后,消息大小不能超过原类型消息的大小。

聊天室消息能力

类型功能描述应用场景
发送聊天室普通消息聊天室成员可以通过 IM SDK 接口发送消息。App 管理员无需加入聊天室,即可调用 RESTful API 在任意聊天室中发送消息。聊天室成员在聊天室内发送消息,App 管理员向任意聊天室发送消息
接收聊天室在线消息聊天室成员可以通过 IM SDK 接收聊天室在线消息在线聊天室成员实时接收聊天室消息
聊天室成员获历史消息聊天室成员通过 IM SDK 接口查询历史消息
需要升级 SDK 到指定版本,并联系环信商务开通。
聊天室成员查看聊天室聊天记录
App server 获取聊天室消息
- App 管理员可通过 RESTful API 下载 App 在某一段时间内产生所有的消息;
- App 管理员通过 RESTful API,获取任意聊天室的聊天记录;
- App server 可以通过聊天室发消息回调,实时获取聊天室消息。

- App 定期备份消息记录;
- App 需要获取某个聊天室的历史消息;
- App 需要实时获取聊天室消息
聊天室消息中携带发送者资料通过消息扩展字段在聊天室消息中携带发送者的昵称、头像、用户或聊天室相关的自定义字段展示消息发送方昵称、头像等用户信息
聊天室消息发送控制通过禁言、聊天室消息发送前回调、黑名单、内容审核进行发送控制。
- 禁止聊天室内某个成员发送消息
- 禁止聊天室内所有成员在该聊天室内发消息
- App server 过滤或修改消息
聊天室消息频率控制对于单个 app,RESTful API 存在以下 3 个限制:
- 10 个聊天室/次
- 100 条/秒
- 100 次/秒
控制接口的调用

提示

与群组聊天不同,聊天室不支持消息离线推送。

聊天室消息发送控制

聊天室消息发送控制描述
消息发送优先级你可以设置聊天室的消息优先级:高、普通和低三种级别。在聊天室内消息并发量较大或消息发送频率过高的情况下,服务器首先丢弃低优先级消息,优先送达高优先级的消息。
消息优先发送(聊天室白名单)聊天室白名单中的成员在聊天室中发送的消息为高优先级,会优先送达,但不保证必达。当负载较高时,服务器会优先丢弃低优先级的消息。即便如此若负载仍很高,服务器也会丢弃高优先级消息。
禁止发送消息- 黑名单:成员加入黑名单后,会被移出聊天室,无法再收发消息。
- 禁言:成员被加入禁言列表后,将无法在聊天室内发送消息,即使其被加入白名单也不能发消息,但可以正常接收消息。全员禁言 开启后,除了在白名单中的成员,其他成员不能发消息。
- 全局禁言 (RESTful API):用户被全局禁言后,无法发送单聊消息、或在无法在所有群组或聊天室中发送消息。聊天室白名单中的成员被全局禁言后,仍无法在所有单聊、群组或聊天室中发消息。
对消息放行或拦截- 发送前回调:环信 IM 服务器会在发送消息之前,向你的应用服务器发送请求,你可以根据业务需求配置规则决定下发或拦截消息。
- 内容审核:基于内容审核结果对消息进行处理,包括拦截、替换敏感信息和放行消息。该服务只对文本、图片、音频和视频消息有效。

聊天室消息频率控制

  • REST API

    对于单个 app,发送聊天室消息 RESTful API 存在以下限制(你可以联系环信商务上调限制):

限制

描述

超限报错

是否可调

100 次/秒

每秒限调 100 次。

第 101 次调用时会报 429 错误:This request has reached api limit。

两个限制均可调。若上调其中一个,另一个自动等比例提升。

例如,将 100 次/秒上调至 200 次/秒后,每秒限发条数自动上调至 200,即 200 条/秒。反之,将 100 条/秒上调至 200 条/秒后,每秒限调次数自动上调至 200,即 200 次/秒。

100 条/秒

每秒限发 100 条消息。

例如,你每次向 10 个聊天室发送消息,即发送了 10 条消息,你每秒最多可调用 10 次该接口。第 11 次调用时,则报 403 错误,即 "message send reach limit"。

10 个聊天室/次

例如,你每次向 10 个聊天室发送消息,即发送了 10 条消息。

若超限,报 400 错误,即 "param to exceed limit"。

不可调

  • SDK

    默认情况下,SDK 对单个用户发送消息的频率未做限制。如果你联系了环信商务设置了该限制,一旦在聊天室中单个用户的消息发送频率超过设定的上限,SDK 会上报错误,例如 Android 端错误码为 509 MESSAGE_CURRENT_LIMITING

消息格式

关于各类型消息格式以及离线推送的消息扩展字段,详见 消息格式文档