2024/11/06 15:20:23
事件通知
添加事件监听
如果想要接收 Storage 事件通知,你需要实现事件监听程序,详见事件监听。除此之外,如果你想要接收 Channl Metadata 的事件通知,你需要在订阅或加入频道时将 featrues
参数设为 AgoraRtmJoinChannelFeatureMetadata
或 AgoraRtmSubscribeChannelFeatureMetadata
。如果你想要接收 User Metadata 的事件通知,你需要调用 subscribeUserMetadata
订阅指定用户的 User Metadata。
事件通知模式
当前 RTM 仅支持全量数据更新模式,即当 User Metadata 或 Channl Metadata 发生变更后,返回的事件通知中的 data
字段包含用户或频道的全部属性数据。
事件通知类型
RTM 的 Storage 事件通知有以下四种类型:
事件类型 | 描述 |
---|---|
AgoraRtmStorageEventTypeSnapshot | 1 : 用户第一次订阅 Channl Metadata 或 User Metadata,或加入频道时触发,本地用户会收到此类事件通知。 |
AgoraRtmStorageEventTypeSet |
信息 该事件仅在增量数据更新模式下返回。 |
AgoraRtmStorageEventTypeUpdate | 3 : 当调用设置、更新或删除 Channel Metadata 或 User Metadata 的方法时会返回该类型事件。 |
AgoraRtmStorageEventTypeRemove |
信息 该事件仅在增量数据更新模式下返回。 |
Storage 事件的数据结构参数含义如下:
属性 | 类型 | 描述 |
---|---|---|
channelType | AgoraRtmChannelType | 频道类型。详见 AgoraRtmChannelType 。 |
storageType | AgoraRtmStorageType | Storage 类型。详见 AgoraRtmStorageType 。 |
eventType | AgoraRtmStorageEventType | Storage 事件类型。详见 AgoraRtmStorageEventType 。 |
target | NSString | 用户 ID 或频道名称。 |
data | AgoraRtmMetadata | Metadata Item。详见 AgoraRtmMetadata 。 |
timestamp | unsigned long long | 事件发生的时间戳。 |