频道相关

更新时间: 2022/10/20 08:46:06

说明:以下所有方法都位于AvSignallingService中。

使用限制

限制项 说明
频道名称长度 长度限制:128 字符
频道扩展字段 长度限制:4096 字符
频道成员人数 人数限制:100 人

创建频道

  • API原型

    每次信令的频道都不需要复用,使用完成后需要关闭对应频道。

dart /// 创建频道
  /// 同一时刻频道名互斥,不能重复创建,但如果频道名缺省,服务器会自动分配频道id。
  /// 错误码如下:
  /// 10405:频道已存在
  ///
  /// [type] 频道类型
  /// [channelName] 频道名,可缺省
  /// [channelExt]  频道的自定义扩展信息,可缺省
  Future<NIMResult<ChannelBaseInfo>> createChannel(
      {required ChannelType type, String? channelName, String? channelExt}) {
    return _platform.createChannel(
        type: type, channelName: channelName, channelExt: channelExt);
  }
  • 说明

    创建频道后并不会主动加入频道,需要手动加入频道。

  • 示例

dart    NimCore.instance.avSignallingService
        .createChannel(type: ChannelType.video)
        .then((value) {
        if(value.isSuccess){
            //todo create channel success
        }else{
            //todo create channel failed
        }
         
    });
    

加入频道

  • API原型
dart
    /// 加入频道
  /// 错误码如下:
  /// 10407:已经频道内
  /// 10417:uid冲突
  /// 10419:频道人数超限,默认100,可通过APPID配置
  /// 10420:自己的其他端已经在频道内
  ///
  ///  [channelId]     对应频道id
  ///  [selfUid]       自己在频道中对应的uid,可选,大于零有效,无效时服务器会分配随机唯一的uid, 也可以自己生成,但要保证唯一性
  ///  [customInfo]    操作者附加的自定义信息,透传给其他人,可缺省
  ///  [offlineEnable] 通知事件是否存离线
  Future<NIMResult<ChannelFullInfo>> joinChannel(
      {required String channelId,
      int? selfUid,
      String? customInfo,
      required bool offlineEnabled}) {
    return _platform.joinChannel(
        channelId: channelId,
        selfUid: selfUid,
        customInfo: customInfo,
        offlineEnabled: offlineEnabled);
  }
  • 示例
dartNimCore.instance.avSignallingService
              .joinChannel(
                  channelId: event.signallingEvent.channelBaseInfo.channelId,
                  offlineEnabled: true)
              .then((value) {
                if(value.isSuccess){
                    //todo join channel success
                }else{
                    //todo join channel failed
                }
          });

离开频道

  • API原型
dart/// 离开频道
  /// 错误码如下:
  /// 10406:不在频道内
  ///
  ///  [channelId]     对应频道id
  ///  [offlineEnable] 通知事件是否存离线
  ///  [customInfo]    操作者附加的自定义信息,透传给其他人,可缺省
  Future<NIMResult<void>> leaveChannel(
      {required String channelId,
      required bool offlineEnabled,
      String? customInfo}) {
    return _platform.leaveChannel(
        channelId: channelId,
        offlineEnabled: offlineEnabled,
        customInfo: customInfo);
  }
  • 示例
dartNimCore.instance.avSignallingService
        .leaveChannel(channelId: channelId, offlineEnabled: offlineEnabled)
        .then((value) {
      if (value.isSuccess) {
        //todo leave channel success
      } else {
        //todo leave channel failed
      }
    });

关闭频道

  • API原型
dart    /// 关闭频道
  /// 错误码如下:
  /// 10406:不在频道内
  ///
  /// [channelId]      对应频道id
  /// [offlineEnabled] 通知事件是否存离线
  /// [customInfo]     操作者附加的自定义信息,透传给其他人,可缺省
  Future<NIMResult<void>> closeChannel(
      {required String channelId,
      required bool offlineEnabled,
      String? customInfo}) {
    return _platform.closeChannel(
        channelId: channelId,
        offlineEnabled: offlineEnabled,
        customInfo: customInfo);
  }
  • 示例
dart NimCore.instance.avSignallingService
        .closeChannel(channelId: channelId, offlineEnabled: offlineEnabled)
        .then((value) {
      if (value.isSuccess) {
        //todo close channel success
      } else {
        //todo close channel failed
      }
    });
此文档是否对你有帮助?
有帮助
去反馈
  • 使用限制
  • 创建频道
  • 加入频道
  • 离开频道
  • 关闭频道