基础功能
本页介绍 IM PaaS 的基础能力:单聊、群组、聊天室、会话、消息类型、离线消息与多端同步。高级能力请见「IM 尊享版和 IM 旗舰版功能」对应的「高级功能」页。
单聊
单聊(Private)即一对一聊天。单聊不需要预先创建,直接以对方 userId 作为 targetId 发送消息即可。
- 消息实时投递,接收方离线时进入离线队列;
- 支持文本、图片、文件、语音、位置与自定义消息;
- 支持已读回执、撤回、输入状态、消息扩展;
- 历史消息按会话 seq 分页拉取,默认每页 20 条,最大 100 条。
群组
群组(Group)是稳定的多人会话,成员上限 3,000。群组由服务端 API 创建,支持邀请、踢人、退群、群主转让、管理员与成员禁言。
| 能力 | 说明 | 接口 |
|---|---|---|
| 创建群组 | 指定群主与初始成员 | POST /group/create |
| 群成员管理 | 批量邀请、移除、退群 | POST /group/join |
| 群资料 | 群名称、公告、头像 | POST /group/update |
| 群主 / 管理员 | 转让群主、设置管理员 | POST /group/admin/add |
| 成员禁言 | 按成员设置禁言截止时间 | POST /group/mute |
聊天室
聊天室(Chatroom)面向高并发在线场景,只有在线用户能接收消息,不持久化、不补发;在线人数上限 5,000。
- 加入聊天室后获取最近 50 条消息;
- 支持聊天室 KV、成员列表、在线状态与进出事件;
- 消息超出服务端消费上限会被丢弃,可配合消息优先级与白名单使用。
会话
会话(Conversation)是客户端展示消息的容器,由 conversationType + targetId 唯一确定。
| conversationType | 含义 | targetId |
|---|---|---|
| 1 | 单聊 Private | 对方 userId |
| 2 | 群组 Group | groupId |
| 3 | 聊天室 Chatroom | chatroomId |
| 4 | 超级群 SuperGroup | superGroupId |
| 5 | 系统通知 System | 系统会话固定值 |
消息类型
内置消息类型覆盖常见场景;也可以通过自定义消息扩展业务载荷。
| 类型 | objectName | 载荷要点 |
|---|---|---|
| 文本 | RC:TxtMsg | content 文本,最长 5,000 字符 |
| 图片 | RC:ImgMsg | url、width、height、size |
| 文件 | RC:FileMsg | url、name、size、mime |
| 语音 | RC:HQVCMsg | url、duration(秒) |
| 位置 | RC:LBSMsg | latitude、longitude、poi |
| 自定义 | 自定义 objectName | 任意 JSON,单条消息上限 5,120 字节 |
离线消息与多端同步
接收方不在线时,消息进入离线队列,每个会话最多缓存 500 条;重新连接后按 seq 升序补发,超出上限时客户端通过历史消息接口拉取。
同一账号的多个在线设备会同时收到消息副本:发送方其他端标记为 SEND,接收方标记为 RECEIVE;任一端 ack 推进用户级已读游标。
可靠性
- 投递语义:at-least-once,客户端按 messageId 去重;
- 幂等:同用户 clientMsgId 10 分钟内幂等;
- 顺序:同一会话内 seq 单调递增;跨会话无全局序;
- 补拉:断线重连后按 deliveredSeq 重放,客户端可继续用历史接口补齐。