广播消息收发
更新时间: 2024/10/09 14:14:11
NIM SDK 支持接收广播消息。广播消息适用于需要通知所有用户的业务场景,如企业管理层通过内部即时通讯软件向全体员工发送内部通知。
技术原理
广播消息由服务端 API(msg.broadcastMsg.action
)发起,SDK 收到广播消息之后直接往应用上层通知,对应用内的所有用户发送一条广播消息。SDK 的MessageService
接口提供监听广播消息发送的方法。

广播消息支持离线存储,如果发送时设置了存离线,则该消息具有有效期(默认7天,可自行配置)。更换设备登录,或者同一设备卸载重装应用,都能重新收到有效期内的广播消息。
前提条件
使用限制
- SDK 不支持发送广播消息,仅支持通过 IM 服务端 API(
msg.broadcastMsg.action
)发送,且一个应用一分钟最多调用10次,一天最多调用 1000000 次,超过会返回 416 错误码。如需上调上限,请在官网首页通过微信、在线消息或电话等方式咨询商务人员。 - 未登录 IM 的用户(例如仅通过独立模式进入聊天室的用户)无法收到广播消息。
- 最多保留最近 10000 条离线广播消息;
- 广播消息不支持推送、漫游和生成会话,SDK 不支持保存广播消息历史记录。
- 广播消息不支持客户端存储。
实现流程
-
接收方注册
onBroadcastMessage
事件流,监听 IM 服务端广播消息NIMBroadcastMessage
的到达。NIMBroadcastMessage
参数说明
参数 类型 说明 id
int 广播消息 ID fromAccount
String 广播消息发送者账号 time
int 广播消息时间戳 content
String 广播消息内容 - 示例代码
dart
NimCore.instance.messageService.onBroadcastMessage.listen((event) { print('Test_Observer onBroadcastMessage ${event.toString()}'); });
-
消息发送者调用
msg.broadcastMsg.action
发送一条广播消息。 -
Stream
事件流回调触发,接收方通过该回调接收广播消息。
API参考
API |
说明 |
---|---|
onBroadcastMessage |
注册/注销广播消息观察者 |
msg.broadcastMsg.action |
通过服务端 API 发送广播消息 |
此文档是否对你有帮助?