IM 尊享版和 IM 旗舰版功能
本页介绍 IM PaaS 的高级与扩展能力。与融云不同,本项目为自托管模式,下列能力默认可用,无需额外开通套餐;仅受部署配置与限频约束。
超级群
超级群(SuperGroup)面向大规模社区,成员上限 100,000,支持频道(Channel)语义与成员分组。
| 能力 | 说明 | 接口 |
|---|---|---|
| 创建超级群 | 指定群主与默认频道 | POST /supergroup/create |
| 频道管理 | 创建/查询/删除频道 | POST /supergroup/channel/create |
| 频道消息 | 按频道发送与拉取 | POST /supergroup/chat |
| 修改消息 | 超级群独有 | POST /supergroup/message/modify |
已读回执
单聊与群聊支持已读回执:接收方调用 sendReadReceipt 上报已读消息;发送方查询已读人数与已读用户列表。
// 接收方:进入会话后上报已读
await client.sendReadReceipt(ConversationType.PRIVATE, 'user2', [messageId]);
// 发送方:查询已读人数与已读用户
const count = await client.getMessageReadCount(messageId);
const users = await client.getMessageReadUsers(messageId, { limit: 50 });await engine.sendReadReceipt(1, 'user2', [messageId]);
final count = await engine.getMessageReadCount(messageId);
final users = await engine.getMessageReadUsers(messageId, limit: 50);client.sendReadReceipt(ConversationType.PRIVATE, "user2", listOf(messageId), object : OperationCallback {
override fun onSuccess() { /* 上报成功 */ }
override fun onError(error: IMError) { /* 处理错误 */ }
})消息撤回
发送方可在 120 秒内撤回消息;撤回后双方会话内消息变为“已撤回”占位。
await client.recallMessage(messageId);await engine.recallMessage(messageId);client.recallMessage(messageId, object : OperationCallback { /* ... */ })输入状态
发送“正在输入”状态,默认 5 秒过期;上报频率上限 60 次/分钟。
消息扩展与自定义消息
- 消息扩展:为已发送消息追加业务字段(如翻译、审核结果),不改变原消息体;
- 自定义消息:注册自定义 objectName 与 JSON 载荷,IM 服务透传不解析;
- 消息搜索:本地全文搜索,支持按关键字返回会话内消息。
全量消息路由(回调)
通过服务端回调把消息实时同步到你的业务服务器,用于归档、审核、数据大屏等。支持消息路由、离线事件、成员变更、封禁等事件。
- 回调服务:事件列表、签名校验、重试策略
- message.routed:全量消息路由
在线状态与用户管理
- 查询单个/批量用户在线状态(批量上限 100);
- 用户封禁、白名单、标签、Token 状态管理;
- 好友关系、黑名单、备注;
内容审核
敏感词列表支持过滤、替换与命中回调;结合 message.routed 回调可以做到先审后发。
推送
服务端推送接口支持按用户、标签、全量用户推送;推送内容与消息解耦,可配置厂商通道。
能力对比
| 能力 | 单聊 | 群组 | 超级群 | 聊天室 |
|---|---|---|---|---|
| 已读回执 | ✅ | ✅ | ✅ | — |
| 撤回 | ✅ | ✅ | ✅ | — |
| 输入状态 | ✅ | ✅ | ✅ | ✅ |
| 消息扩展 | ✅ | ✅ | ✅ | — |
| 修改消息 | — | — | ✅ | — |
| 离线补发 | ✅ | ✅ | — | — |
| 历史漫游 | ✅ | ✅ | ✅ | — |