邀请机制

更新时间: 2022/09/30 02:45:38

网易云信 NIM Flutter SDK 的AvSignallingService提供信令服务相关方法和信令相关监听的回调。

使用限制

限制项 说明
频道成员人数 人数限制:100 人
信令呼叫唯一标识 长度限制:128 字符
信令扩展字段 长度限制:4096 字符
推送 payload 长度限制:4096 字符
推送内容 长度限制:500 字符
推送标题 长度限制:32 字符

邀请他人

  • API原型
dart  /// 邀请他人加入频道
  /// 该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。如果需要对离线成员邀请,
  /// 可以打开离线邀请开关并填写推送信息,被邀请者上线后通过离线通知接收到该邀请。
  /// 错误码如下:
  /// 10201:已经成功发出邀请但是对方不在线(推送可达,但是离线)
  /// 10202:已经成功发出邀请但是对方推送不可达
  /// 10404:频道不存在
  /// 10406:自己不在频道内(仅对于普通用户,频道创建者不在频道内也可以邀请别人)
  /// 10407:对方已经频道内
  /// 10419:频道人数超限
  /// [inviteParam]
  Future<NIMResult<void>> invite(InviteParam inviteParam) {
    return _platform.invite(inviteParam);
  }
  • 说明

此接口参数InviteParam中有一个requestId ,是用来做为此次邀请动作的唯一标识,需要开发者自己生成,并保证唯一性,不同的邀请不能用同一个id,否则可能导致混乱。

  • 示例
dartNimCore.instance.avSignallingService
        .invite(InviteParam(channelId: channelId, accountId: accountId, requestId: requestId))
        .then((value) {
      if (value.isSuccess) {
        //todo invite success
      } else {
        //todo invite failed
      }
    });
   

取消邀请

  • API原型
dart/// 取消邀请
  /// 错误码如下:
  /// 10404:频道不存在
  /// 10408:邀请不存在或已过期 (过期时间2min)
  /// 10409:邀请已经拒绝
  /// 10410:邀请已经接受
  /// [inviteParam]
  Future<NIMResult<void>> cancelInvite(InviteParam inviteParam) {
    return _platform.cancelInvite(inviteParam);
  }
  • 说明

参数InviteParam中的 requestId 需要传入邀请时生成的id。

  • 示例
dartNimCore.instance.avSignallingService
        .cancelInvite(InviteParam(channelId: channelId, accountId: accountId, requestId: requestId))
        .then((value) {
      if (value.isSuccess) {
        //todo cancel invite success
      } else {
        //todo cancel invite failed
      }
    });

接受邀请

  • API原型
dart   /// 接受对方邀请,但并不代表加入了频道
  /// 错误码如下:
  /// 10201:已经成功接受邀请但是对方不在线(推送可达,但是离线)
  /// 10404:频道不存在
  /// 10408:邀请不存在或已过期
  /// 10409:邀请已经拒绝
  /// 10410:邀请已经接受
  /// [paramBuilder]
  Future<NIMResult<void>> acceptInvite(InviteParam inviteParam) {
    return _platform.acceptInvite(inviteParam);
  }
  • 示例
dartNimCore.instance.avSignallingService
        .acceptInvite(InviteParam(channelId: channelId, accountId: accountId, requestId: requestId))
        .then((value) {
      if (value.isSuccess) {
        //todo accept invite success
      } else {
        //todo accept invite failed
      }
    });

拒绝邀请

  • API原型
dart   /// 拒绝对方邀请
  /// 错误码如下:
  /// 10201:已经成功拒绝邀请但是对方不在线(推送可达,但是离线)
  /// 10404:频道不存在
  /// 10408:邀请不存在或已过期
  /// 10409:邀请已经拒绝
  /// 10410:邀请已经接受
  /// [paramBuilder]
  Future<NIMResult<void>> rejectInvite(InviteParam inviteParam) {
    return _platform.rejectInvite(inviteParam);
  }
  • 示例
dartNimCore.instance.avSignallingService
        .rejectInvite(InviteParam(channelId: channelId, accountId: accountId, requestId: requestId))
        .then((value) {
      if (value.isSuccess) {
        //todo reject invite success
      } else {
        //todo reject invite failed
      }
    });

直接呼叫

  • API原型
dart    /// 直接呼叫 , 用于用户新开一个频道并邀请对方加入频道。该接口为组合接口,等同于用户先创建频道,然后加入频道并邀请对方。
  /// 错误码如下:
  /// 10201:已经成功发出邀请但是对方不在线(推送可达,但是离线)
  /// 10202:已经成功发出邀请但是对方推送不可达
  /// 10405:频道已存在
  /// [callParamBuilder]
  Future<NIMResult<ChannelFullInfo>> call(CallParam callParam) {
    return _platform.call(callParam);
  }
  • 示例
dartNimCore.instance.avSignallingService
        .call(CallParam(
            channelType: channelType,
            requestId: requestId,
            accountId: accountId))
        .then((value) {
      if (value.isSuccess) {
        //todo call success
      } else {
        //todo call failed
      }
    });
此文档是否对你有帮助?
有帮助
去反馈
  • 使用限制
  • 邀请他人
  • 取消邀请
  • 接受邀请
  • 拒绝邀请
  • 直接呼叫