邀请机制

更新时间: 2022/08/29 11:21:51

邀请别人加入频道

  • signalingInvite 该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。如果需要对离线成员邀请,可以打开离线邀请开关并填写推送信息。被邀请者在线后通过离线通知接收到该邀请,并通过频道信息中的invalid字段判断频道的有效性,也可以对所有离线消息处理后判断该邀请是否被取消。

  • 如果邀请的成员在线,对方会收到邀请的通知

  • 示例代码

javascript  var pushInfo = {
    needPush: true,
    pushTitle: 'title',
    pushContent: '你收到了邀请',
    pushPayload: { from: 111 },
    needBadge: true,
  }

  var param = {
    channelId: '2ed4a942417e4b33949f1b65739f3f00',
    account: 'cs3',
    requestId: '123',
    offlineEnabled: true,
    attachExt: '12',
    pushInfo: pushInfo
  }

  nim.signalingInvite(param).then(data => {
    console.warn("独立呼叫信令,邀请别人加入频道成功,data:", data)
  }).catch(error => {
    console.warn("独立呼叫信令,邀请别人加入频道失败,error:", error)
    switch (error.code) {
      case 10404:
        console.warn("独立呼叫信令:频道不存在")
        break
      case 10406:
        console.warn("独立呼叫信令:不在频道内(自己)")
        break
      case 10407:
        console.warn("独立呼叫信令:已经在频道内(对方)")
        break
      case 10419:
        console.warn("独立呼叫信令:频道人数超限")
        break
      case 10201:
        console.warn("独立呼叫信令:对方云信不在线")
        break
      case 10202:
        console.warn("独立呼叫信令:对方推送不可达");//  可能对方不在线也是返回的这个。
        break
    }
  })
  • 参数说明
param 类型 说明
channelId string 对应的频道id
account string 对方account账号
requestId string 邀请者邀请的请求id,需要邀请者填写,之后取消邀请、拒绝、接受需要复用该requestId,长度限制:128 字符
offlineEnabled boolean 是否存离线通知
attachExt string 操作者(即被邀请者)附加的自定义信息,透传给其他人,可缺省,长度限制 4096 字符
pushInfo object 推送信息
pushInfo推送消息 类型 说明
pushTitle string 推送标题,长度限制:32 字符
pushContent string 推送内容,长度限制:500 字符
pushPayload string 推送自定义字段,要求是json格式,Web支持Object对象类型,长度限制:4096 字符
needPush boolean 是否需要推送,默认false
needBadge boolean 是否计入未读计数,默认true
error结果说明 类型 说明
code number 错误码 10404表示频道不存在 10406表示不在频道内(自己) 10407表示已经在频道内(对方) 10419表示频道人数超限 10201表示对方云信不在线 10202表示对方推送不可达
data结果说明 类型 说明
code number 错误码 200表示邀请别人加入频道成功

取消邀请别人加入频道

  • signalingCancel 该接口用于取消邀请,对方会收到取消的通知

  • 示例代码

javascript  var param = {
    channelId: '2ed4a942417e4b33949f1b65739f3f00',
    account: 'cs3',
    requestId: '123',
    offlineEnabled: true,
    attachExt: '11'
  }

  nim.signalingCancel(param).then(data=>{
    console.warn("独立呼叫信令,取消邀请别人加入频道成功,data:", data)
  }).catch(error=>{
    console.warn("独立呼叫信令,取消邀请别人加入频道失败,error:", error)
    switch (error.code) {
      case 10404:
        console.warn("独立呼叫信令:频道不存在")
        break
      case 10408:
        console.warn("独立呼叫信令:邀请不存在或已过期")
        break
      case 10409:
        console.warn("独立呼叫信令:邀请已经拒绝")
        break
      case 10410:
        console.warn("独立呼叫信令:邀请已经接受")
        break
    }  
  })
  • 参数说明
param 类型 说明
channelId string 对应的频道id
account string 对方account账号
requestId string 邀请者邀请的请求id,需要邀请者填写,之后取消邀请、拒绝、接受需要复用该requestId,长度限制:128 字符
offlineEnabled boolean 是否存离线通知
attachExt string 操作者(即被邀请者)附加的自定义信息,透传给其他人,可缺省,长度限制:4096 字符
error结果说明 类型 说明
code number 错误码 10404表示频道不存在 10408表示邀请不存在或已过期 10409表示邀请已经拒绝 10410表示邀请已经接受
data结果说明 类型 说明
code number 错误码 200表示取消邀请成功

接受邀请

  • signalingAccept 该接口用于接受邀请。

  • 不打开自动加入开关:该接口只接受邀请并告知邀请者(如果其他在线设备,会同步通知自己的其他在线设备),但不会主动加入频道,需要单独调用加入频道接口(对方会收到你接受邀请的通知)。

  • 打开自动加入开关:该接口为组合接口,等同于先调用接受邀请,成功后再加入频道(对方会收到你接受邀请和加入频道的通知)。

  • 示例代码

javascript  var param = {
    channelId: '2ed4a942417e4b33949f1b65739f3f00',
    account: 'cs3',
    requestId: '123',
    offlineEnabled: false,
    attachExt: '12',
    autoJoin: false,
    uid: '123',
    joinAttachExt: 'join ext'
  }

  nim.signalingAccept(param).then(data=>{
    console.warn("独立呼叫信令,接受别人的邀请,data:", data)
    if(autoJoin) {
      console.warn("独立呼叫信令,接受别人的邀请后,自动加入频道成功,data:", data)
    }
  }).catch(error=>{
    console.warn("独立呼叫信令,取消邀请别人加入频道失败,error:", error)
    if (error.code == 10404) {
      console.warn("独立呼叫信令:频道不存在");
    } else if (error.code == 10408) {
      console.warn("独立呼叫信令:邀请不存在或已过期");
    } else if (error.code == 10409) {
      console.warn("独立呼叫信令:邀请已经拒绝");
    } else if (error.code == 10410) {
      console.warn("独立呼叫信令:邀请已经接受");
    } else if (error.code == 10201) {
      console.warn("独立呼叫信令:对方不在线");
    } 
  })
  • 参数说明
param 类型 说明
channelId string 对应的频道id
account string 邀请的account账号
requestId string 邀请者邀请的请求id,需要邀请者填写,之后取消邀请、拒绝、接受需要复用该requestId,长度限制:128 字符
offlineEnabled boolean 是否存离线通知
attachExt string 操作者附加的自定义信息,透传给其他人,可缺省,长度限制:4096 字符
autoJoin boolean 是否自动加入频道,默认不打开,打开后后续参数uid、joinAttachExt有效
uid string 自己在频道中对应的uid,大于零有效,无效时服务器会分配随机唯一的uid,可缺省
joinAttachExt string 加入频道的自定义扩展信息,将在加入频道通知中带给其他频道成员,可缺省
error结果说明 类型 说明
code number 错误码 10404表示频道不存在 10408表示邀请不存在或已过期 10409表示邀请已经拒绝 10410表示邀请已经接受 10201表示对方不在线
data结果说明 类型 说明
code number 错误码 200表示接受邀请成功
channelInfo object 频道信息,创建频道接口中有说明格式
members array 频道里的成员列表,加入频道的接口中有说明格式

加入频道并接受邀请

signalingJoinAndAccept 接口用于加入频道并接受邀请。该接口为组合接口,等同于先调用加入频道,成功后再接受邀请(对方会收到你接受邀请和加入频道的通知)。

该接口与打开自动加入开关的接受邀请(signalingAccept)接口的区别在于signalingJoinAndAccept内部优化了信令的响应时间。

频道成员人数上限 100 人。

  • 示例代码
var param = {
    channelId: '2ed4a942417e4b33949f1b65739f3f00',
    account: 'cs3',
    requestId: '123',
    offlineEnabled: false,
    attachExt: '12',
    uid: '123',
    joinAttachExt: 'join ext'
  }

  nim.signalingJoinAndAccept(param).then(data=>{
    console.warn("独立呼叫信令,接受别人的邀请并加入成功,data:", data)
  }).catch(error=>{
    console.warn("独立呼叫信令,邀请别人加入频道失败,error:", error)
    switch (error.code) {
      case 10407:
        console.warn("独立呼叫信令:已经在频道内")
        break
      case 10419:
        console.warn("独立呼叫信令:频道人数超限")
        break
      case 10417:
        console.warn("独立呼叫信令:频道成员uid冲突了")
        break
      case 10420:
        console.warn("独立呼叫信令:该账号,在其他端已经登录,并且已经在频道内")
        break
      case 10404:
        console.warn("独立呼叫信令:频道不存在")
        break
    }
  })
  • 参数说明
param  类型   说明
channelId string 对应的频道id
uid string 自己在频道中对应的uid,大于零有效,无效时服务器会分配随机唯一的uid
offlineEnabled boolean 是否存离线通知
attachExt string 操作者附加的自定义信息,透传给其他人,可缺省
account string 邀请者accid
requestId string 邀请者邀请的请求id
nertcChannelName string 云信G2-RTC的房间名
nertcTokenTtl string 云信G2-RTC的token的有效期,表示token的过期时间,单位秒,选填,默认10分钟
nertcJoinRoomQueryParamMap string 云信G2-RTC加入房间的请求参数,可以转成json
error结果说明 类型 说明
code number 错误码 10407表示已经在频道内 10419表示频道人数已满 10417表示频道内成员的uid有冲突 10420表示该账号,在其他端已经登录,并且已经在频道内 10404表示频道不存在
data结果说明 类型 说明
channelInfo object 频道信息,创建频道接口中有说明格式
members array 频道里的成员列表,数组元素member是一个object,描述了成员信息
members数组中member元素说明 类型 说明
account string 成员account账号
uid string 该成员在频道中对应的uid
createTimestamp number 频道创建时间点
expireTimestamp number 频道失效时间点

拒绝邀请

  • signalingReject 拒绝邀请后用户也可以通过加入频道接口加入频道,接口的使用由用户的业务决定,对方会收到你拒绝邀请的通知

  • 示例代码

javascript  var param = {
    channelId: channelId,
    account: account,
    requestId: requestId,
    offlineEnabled: offlineEnabled,
    attachExt: ext
  }

  nim.signalingReject(param).then(data=>{
    console.warn("独立呼叫信令,拒绝别人的邀请,data:", data)
  }).catch(error=>{
    console.warn("独立呼叫信令,拒绝别人的邀请失败,error:", error)
    if (error.code == 10404) {
      console.warn("独立呼叫信令:频道不存在");
    } else if (error.code == 10408) {
      console.warn("独立呼叫信令:邀请不存在或已过期");
    } else if (error.code == 10409) {
      console.warn("独立呼叫信令:邀请已经拒绝");
    } else if (error.code == 10410) {
      console.warn("独立呼叫信令:邀请已经接受");
    } else if (error.code == 10201) {
      console.warn("独立呼叫信令:对方不在线");
    } 
  })
  • 参数说明
param 类型 说明
channelId string 对应的频道id
account string 邀请者的account账号
requestId string 邀请者邀请的请求id,需要邀请者填写,之后取消邀请、拒绝、接受需要复用该requestId,长度限制:128 字符
offlineEnabled boolean 是否存离线通知
attachExt string 操作者附加的自定义信息,透传给其他人,可缺省,长度限制:4096字符
error结果说明 类型 说明
code number 错误码 10404表示频道不存在 10408表示邀请不存在或已过期 10409表示邀请已经拒绝 10410表示邀请已经接受 10201表示对方不在线
data结果说明 类型 说明
code number 错误码 200表示接受邀请成功
channelInfo object 频道信息,创建频道接口中有说明格式
members array 频道里的成员列表,加入频道的接口中有说明格式

呼叫信令

  • signalingCall 用于用户新开一个频道并邀请对方加入频道。

  • 该接口为组合接口,等同于用户先创建频道,成功后加入频道并邀请对方。如果返回码不是200、10201、10202时,sdk会主动关闭频道,标记接口调用失败。

  • 对方会收到一个邀请通知,对方可以选择接受或者拒绝。

  • 示例代码

javascriptvar param = {
  type: 1,
  channelName: '呼叫信令频道1',
  ext: '',
  uid: '123',
  account: 'cs4',
  requestId: '2333',
  offlineEnabled: false,
  attachExt: '',
  pushInfo: {
    needPush: true,
    pushTitle: 'title',
    pushContent: '你收到了邀请',
    pushPayload: { from: 'test' },
    needBadge: true,
  }
}

nim.signalingCall(param).then(data=>{
  console.warn("独立呼叫信令,呼叫成功:", data)
}).catch(error=>{
  console.warn("独立呼叫信令,呼叫失败:", error)
  if (error.code == 10405) {
    console.warn("独立呼叫信令:频道已存在");
  } else if (error.code == 10201) {
    console.warn("独立呼叫信令:对方云信不在线");
  } else if (error.code == 10202) {
    console.warn("独立呼叫信令:对方推送不可达");
  } 
})
  • 参数说明
param 类型 说明
type number 通话类型,1:音频;2:视频;3:其他
channelName string 频道名,可缺省
ext string 频道的自定义扩展信息,可缺省
uid string 自己在频道中对应的uid,大于零有效,无效时服务器会分配随机唯一的uid
account string 邀请的对方account账号
requestId string 邀请者邀请的请求id,需要邀请者填写,之后取消邀请、拒绝、接受需要复用该requestId,长度限制:128 字符
offlineEnabled boolean 是否存离线通知
attachExt string 操作者附加的自定义信息,透传给其他人,可缺省,长度限制:4096 字符
pushInfo object 推送信息
pushInfo推送消息 类型 说明
pushTitle string 推送标题,长度限制:32 字符
pushContent string 推送内容,长度限制:500 字符
pushPayload string 推送自定义字段,要求是json格式,否则推送会产生错误,长度限制:4096 字符
needPush boolean 是否需要推送,默认false
needBadge boolean 是否计入未读计数,默认true
error结果说明 类型 说明
code number 错误码 10405表示频道已存在 10201表示对方云信不在线 10202表示对方推送不可达
data结果说明 类型 说明
code number 错误码 200表示接受邀请成功
channelInfo object 频道信息,创建频道接口中有说明格式
members array 频道里的成员列表,加入频道的接口中有说明格式

呼叫信令(新)

呼叫信令接口,同 signalingCall。区别在于 signalingCallEx 优化了信令的响应时间。

  • 示例代码
var param = {
  type: 1,
  channelName: '呼叫信令频道1',
  ext: '',
  uid: '123',
  account: 'cs4',
  requestId: '2333',
  offlineEnabled: false,
  needPush: true,
  pushTitle: 'title',
  pushContent: '你收到了邀请',
  pushPayload: { from: 'test' },
  needBadge: true,
  attachExt: '',
  uid:''
}

nim.signalingCallEx(param).then(data=>{
  console.warn("独立呼叫信令,创建频道加入和邀请成功,data:", data)
}).catch(error=>{
  console.warn("独立呼叫信令,创建频道加入和邀请失败:", error)
  switch (error.code) {
      case 10405:
        console.warn("独立呼叫信令:频道已存在,请勿重复创建")
        break
      case 10201:
        console.warn("独立呼叫信令:对方云信不在线")
        break
      case 10202:
        console.warn("独立呼叫信令:频道不存在")
        break
    }
})
  • 参数说明
param 类型 说明
type number 通话类型,1:音频;2:视频;3:其他
channelName string 频道名,可缺省
ext string 频道的自定义扩展信息,可缺省
uid string 自己在频道中对应的uid,大于零有效,无效时服务器会分配随机唯一的uid
account string 邀请的对方account账号
requestId string 邀请者邀请的请求id,需要邀请者填写,之后取消邀请、拒绝、接受需要复用该requestId,长度限制:128 字符
offlineEnabled boolean 是否存离线通知
attachExt string 操作者附加的自定义信息,透传给其他人,可缺省,长度限制:4096 字符
pushInfo object 推送信息
nertcChannelName string 云信G2-RTC的房间名
nertcTokenTtl string 云信G2-RTC的token的有效期,表示token的过期时间,单位秒,选填,默认10分钟
nertcJoinRoomQueryParamMap string 云信G2-RTC加入房间的请求参数,可以转成json
pushInfo推送消息 类型 说明
pushTitle string 推送标题,长度限制:32 字符
pushContent string 推送内容,长度限制:500 字符
pushPayload string 推送自定义字段,要求是json格式,否则推送会产生错误,长度限制:4096 字符
needPush boolean 是否需要推送,默认false
needBadge boolean 是否计入未读计数,默认true
error结果说明 类型 说明
code number 错误码 10405表示频道已存在 10201表示对方云信不在线 10202表示对方推送不可达
data结果说明 类型 说明
code number 错误码 200表示接受邀请成功
channelInfo object 频道信息,创建频道接口中有说明格式
members array 频道里的成员列表,加入频道的接口中有说明格式
此文档是否对你有帮助?
有帮助
去反馈
  • 邀请别人加入频道
  • 取消邀请别人加入频道
  • 接受邀请
  • 加入频道并接受邀请
  • 拒绝邀请
  • 呼叫信令
  • 呼叫信令(新)