广播消息收发
更新时间: 2024/03/15 16:12:31
网易云信 NIM Android SDK 支持接收广播消息。广播消息适用于需要通知所有用户的业务场景,如企业管理层通过内部即时通讯软件向全体员工发送内部通知。
技术原理
广播消息由服务端 API(msg.broadcastMsg.action
)发起,SDK 收到广播消息之后直接往应用上层通知,对应用内的所有用户发送一条广播消息。SDK 的MsgServiceObserve
接口提供监听广播消息发送的方法。
前提条件
- 广播消息功能需要单独开通,进行相关开发前,请确保您已在云信控制台应用管理 > 产品功能 > IM 即时通讯 > 全局功能开通全员广播功能。
- 请确保您使用的 NIM Android SDK 为 4.3.0 及以上版本,4.3.0 之前版本不支持接收广播消息。
- 已完成 SDK 初始化。
- 已登录 IM。未登录 IM 的用户(例如通过独立模式进入聊天室的用户)接收不到广播消息。
使用限制
- SDK 不支持发送广播消息,仅支持通过 IM 服务端 API(
msg.broadcastMsg.action
)发送,且一个应用一分钟最多调用 10 次,一天最多调用 1000 次,超过会返回 416 错误码。如需上调上限,请在官网首页通过微信、在线消息或电话等方式咨询商务人员。 - 最多保留最近 100 条离线广播消息;
- 广播消息不支持推送、漫游和生成会话。
- 广播消息不支持客户端存储。
实现流程
-
消息接收者调用
observeBroadcastMessage
注册广播消息观察者,监听 IM 服务端广播消息发送。- 该方法的原型如下:
/** * 注册/注销全员广播消息观察者 * @param observer 观察者,参数全员广播消息。 * @param register true为注册,false为注销 */ public void observeBroadcastMessage(Observer<BroadcastMessage> observer, boolean register);
其中
Observer
回调函数的BroadcastMessage
的成员参数如下:参数 说明 id
广播消息 ID fromAccount
广播消息发送者账号 time
广播消息时间戳 content
广播消息内容 - 示例代码如下:
/** * 注册云信全服广播接收器 * * @param register */ private void registerNimBroadcastMessage(boolean register) { NIMClient.getService(MsgServiceObserve.class).observeBroadcastMessage(new Observer<BroadcastMessage>() { @Override public void onEvent(BroadcastMessage broadcastMessage) { // 处理 } }, register); }
-
消息发送者调用
msg.broadcastMsg.action
发送一条广播消息。 -
SDK 触发
Observer
回调函数,将广播消息发送至消息接收者。
此文档是否对你有帮助?