iOS

广播消息收发

更新时间: 2024/03/15 16:12:32

网易云信 NIM iOS SDK 支持接收广播消息。广播消息适用于需要通知所有用户的业务场景,如企业管理层通过内部即时通讯软件向全体员工发送内部通知。

技术原理

广播消息由服务端 API(msg.broadcastMsg.action)发起,SDK 收到广播消息之后直接往应用上层通知,对应用内的所有用户发送一条广播消息。SDK 的NIMBroadcastManager协议提添加和删除广播消息委托的方法。

广播消息支持离线存储,如果发送时设置了存离线,则该消息具有有效期(默认7天,可自行配置)。更换设备登录,或者同一设备卸载重装应用,都能重新收到有效期内的广播消息。

前提条件

  • 广播消息功能需要单独开通,进行相关开发前,请确保您已在云信控制台应用管理 > 产品功能 > IM 即时通讯 > 全局功能开通全员广播功能。
  • 请确保您使用的 NIM iOS SDK 为 4.3.0 以上版本,4.3.0 之前版本不支持接收广播消息。
  • 已完成 SDK 初始化

使用限制

  • SDK 不支持发送广播消息,仅支持通过 IM 服务端 API(msg.broadcastMsg.action)发送,且一个应用一分钟最多调用10次,一天最多调用 1000 次,超过会返回 416 错误码。如需上调上限,请在官网首页通过微信、在线消息或电话等方式咨询商务人员。
  • 未登录 IM 的用户(例如仅通过独立模式进入聊天室的用户)无法收到广播消息。
  • 最多保留最近 100 条离线广播消息;
  • 广播消息不支持推送、漫游和生成会话,SDK 不支持保存广播消息历史记录。
  • 广播消息不支持客户端存储。

实现流程

  1. 消息接收者调用addDelegate:添加广播消息委托,监听 IM 服务端广播消息发送。

    • 参数说明

      该委托方法的参数说明如下:

      参数 说明
      delegate 广播消息回调对象

      广播消息回调对象的参数说明如下:

      参数 类型 说明
      broadcastMessage NIMBroadcastMessage 广播消息,具体参数见左侧链接
    • 示例代码

      // 添加监听
      - (void)addListener
      {
      [[NIMSDK sharedSDK].broadcastManager addDelegate:self];
      }
      
      ...
      
      // 回调方法
      - (void)onReceiveBroadcastMessage:(NIMBroadcastMessage *)broadcastMessage
      {
          //do something with broadcast message
      }
      
  2. 消息发送者调用msg.broadcastMsg.action发送一条广播消息。

  3. SDK 触发delegate回调函数,将广播消息发送至消息接收者。

API参考

API
说明
addDelegate: 添加广播消息委托
removeDelegate: 取消广播消息委托
msg.broadcastMsg.action 发送广播消息
此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 前提条件
  • 使用限制
  • 实现流程
  • API参考