通知

更新时间: 2023/08/15 02:25:06

通知包含在线通知、离线通知、同步通知、其他通知,开发者可以通过AvSignallingService 中的Stream监听通知。

在线通知

  • 在线通知类型定义在 SignallingEventType 中。

    • close:频道关闭通知事件
    • join:有用户加入频道通知事件
    • invite:被邀请通知事件
    • cancelInvite:被取消邀请通知事件
    • reject:对方拒绝邀请通知事件
    • accept:对方接受邀请通知事件
    • leave:用户离开通知事件
    • control:自定义控制命令通知事件
  • API原型

dart  /// 在线通知事件回调
  /// 回调返回为[ChannelCommonEvent]的对象
  /// 可以根据事件类型获取对象中的特殊属性
  Stream<ChannelCommonEvent> get onlineNotification =>
      _platform.onlineNotification;
  • 示例
dart    NimCore.instance.avSignallingService.onlineNotification.listen((event) { 
      switch(event.signallingEvent.eventType){
        case SignallingEventType.close:
          // TODO: Handle this case.
          break;
        case SignallingEventType.join:
          // TODO: Handle this case.
          break;
        case SignallingEventType.invite:
          // TODO: Handle this case.
          break;
        case SignallingEventType.cancelInvite:
          // TODO: Handle this case.
          break;
        case SignallingEventType.reject:
          // TODO: Handle this case.
          break;
        case SignallingEventType.accept:
          // TODO: Handle this case.
          break;
        case SignallingEventType.leave:
          // TODO: Handle this case.
          break;
        case SignallingEventType.control:
          // TODO: Handle this case.
          break;
        case SignallingEventType.unKnow:
        // TODO: Handle this case.
          break;
      }
    });

离线通知

如果用户在登录前监听了 offlineNotification 事件,那么当用户登录时,会收到离线期间的所有已经的离线通知(通知默认不离线,需要发送方做相应的配置)。

  • 离线通知类型

    • close:频道关闭通知事件
    • join:有用户加入频道通知事件
    • invite:被邀请通知事件
    • cancelInvite:被取消邀请通知事件
    • reject:对方拒绝邀请通知事件
    • accept:对方接受邀请通知事件
    • leave:用户离开通知事件
  • API 原型

dart   ///离线通知事件观察者,在用户登录后sdk 会去服务器同步用户离线期间发生的各种通知,并以列表的形式返回。
  /// 列表的排序方式为时间递增排序。
  /// 注意:登录后第一次注册此回调时,如果sdk已经获取到了相应的离线通知列表,会立即回调一次(仅此一次)。
  /// 可以根据事件类型获取对象中的特殊属性
  Stream<List<ChannelCommonEvent>> get offlineNotification =>
      _platform.offlineNotification;

登录后第一次注册此回调时,如果sdk已经获取到了相应的离线通知列表,会立即回调一次(仅此一次)。

  • 示例
dartNimCore.instance.avSignallingService.offlineNotification.listen((events) {
      for (ChannelCommonEvent event in events) {
        switch (event.signallingEvent.eventType) {
          case SignallingEventType.close:
            // TODO: Handle this case.
            break;
          case SignallingEventType.join:
            // TODO: Handle this case.
            break;
          case SignallingEventType.invite:
            // TODO: Handle this case.
            break;
          case SignallingEventType.cancelInvite:
            // TODO: Handle this case.
            break;
          case SignallingEventType.reject:
            // TODO: Handle this case.
            break;
          case SignallingEventType.accept:
            // TODO: Handle this case.
            break;
          case SignallingEventType.leave:
            // TODO: Handle this case.
            break;
          case SignallingEventType.control:
            // TODO: Handle this case.
            break;
          case SignallingEventType.unKnow:
            // TODO: Handle this case.
            break;
        }
      }
    });

同步通知

  • 同步通知类型

    • 多端同步(同一账号其他端响应了相应的邀请)
    • 登录时同步未退出的频道信息
  • API 原型

dart///其他端响应(接收/拒绝)邀请事件回调,当其他端响应了邀请时触发
  Stream<ChannelCommonEvent> get otherClientInviteAckNotification =>
      _platform.otherClientInviteAckNotification;

  /// 同步未退出频道列表事件回调 ,在用户登录后sdk会去服务器获取当前还未退出的频道列表 。
  /// 注意:登录后第一次注册此回调时,如果sdk已经获取到了相应的频道列表,会立即回调一次(仅此一次)。
  Stream<List<SyncChannelEvent>> get syncChannelListNotification =>
      _platform.syncChannelListNotification;

登录后第一次注册syncChannelListNotification回调时,如果sdk已经获取到了相应的频道列表,会立即回调一次(仅此一次)。

其他通知

  • 类型

    • 成员更新(主要用来处理些异常情况)
  • API 原型

java /// 频道成员更新事件回调
  ///
  /// 回调参数为成员更新事件,其中包含了最新的频道的完整信息(频道信息+成员列表)
  /// 注意:如果是有成员离开或加入频道,正常情况下会优先通过[onlineNotification]的回调来通知用户。
  /// 此回调的时机如下: 如果有成员信息的变更(而不是成员数量增减)或异常情况(有成员数量变更但是sdk没有回调[onlineNotification])
  Stream<SyncChannelEvent> get onMemberUpdateNotification =>
      _platform.onMemberUpdateNotification;
  • 如果是有成员离开或加入频道,正常情况下会优先通过 onlineNotification 的回调来通知用户。
  • 此回调的时机:如果有成员信息的变更(而不是成员数量增减)或异常情况(有成员数量变更但是sdk没有回调onlineNotification)。
此文档是否对你有帮助?
有帮助
去反馈
  • 在线通知
  • 离线通知
  • 同步通知
  • 其他通知