uni-app Rtm 接口

最近更新时间:2023-04-28 07:20:18

首页你可以获取封装 uni 本地插件实例:

vrtmModule = uni.requireNativePlugin('插件名称')

通用错误码

  • res.code
    • -1 :参数错误,请检查参数及参数类型是否正确
    • -7 :rtm 未实例化

setCallBack()

rtmModule.setCallBack((res) => {
    switch (res.rtmEvent) {
      case "onConnectionStateChanged":  //连接状态回调
        //something
        break;
      case "onPeerMessageReceived": //一对一消息回调
        //something
        break;

        ...

})

注册 sdk 事件回调 。先执行 setCallBack 后,才可以 createInstance 创建对象

返回

createInstance()

rtmModule.createInstance(
  {
    appId: '',
  },
  (res) => {
    //something
  }
)

创建一个 Rtm 实例。

RTM SDK 支持多个 Rtm 实例。

类型参数描述
StringappIdanyRTC 为 App 开发者签发的 App ID。每个项目都应该有一个独一无二的 App ID。如果你的开发包里没有 App ID,请从anyRTC 官网申请一个新的 App ID。

返回

  • res.code
    • 0 :创建成功。
    • 其他:创建失败或者重复创建。

login()

rtmModule.login(
  {
    token: 'token',
    userId: '123',
  },
  (res) => {
    //something
  }
)

登录 RTM 系统。

注解

如果你在不同 SDK 实例中以相同用户 ID 登录,之前登录的用户将被踢出。该方法的最高调用频率限制为 2 次每秒。只有在调用本方法成功登录 RTM 系统后才可以调用 RTM 的核心业务逻辑。

参数描述
Stringtoken用于登录 RTM 系统的动态密钥。开启动态鉴权后可用。集成及测试阶段请将 token 设置为 ""。
StringuserId登录 RTM 系统的用户 ID。该字符串不可超过 64 字节。以下为支持的字符集范围: 26 个小写英文字母 a-z
26 个大写英文字母 A-Z
10 个数字 0-9
空格(如果 userId 包含空格则无法与信令 SDK 互通)
"!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ","

返回

  • res.code
    • 0 :登录成功。没有错误
    • 1 :登录失败。原因未知
    • 2 :登录被服务器拒绝
    • 3 :登录参数无效
    • 4 :App ID 无效
    • 5 :Token 无效
    • 6 :Token 已过期,登录被拒绝
    • 7 :登录未经授权
    • 8 :用户已登录,或正在登录 anyRTC 云平台 RTM 系统,或未调用 logout()
    • 9 :登录超时。目前的超时设置为 6 秒
    • 10 :登录过于频繁。方法 login() 的调用频率超过 2 次/秒的上限
    • 101 :SDK 未完成初始化

logout()

rtmModule.logout((res) => {
  //something
})

登出 RTM 系统。

返回

  • res.code

    • 0 :登出成功
    • 1 :登出被拒绝
    • 101 : SDK 未完成初始化
    • 102 : 登出 RTM 系统前未调用 login() 方法或者 login() 方法调用未成功

release()

rtmModule.release((res) => {
  //something
})

释放当前 Rtm 实例使用的所有资源。

注解

请不要在任何回调中调用该方法。

返回

  • res.code
    • 0 :方法调用成功。

sendMessageToPeer()

rtmModule.sendMessageToPeer(
  {
    peerId: this.peerId,
    text: this.ptoPMsg,
    enableHistoricalMessaging: false,
    enableOfflineMessaging: false,
  },
  (ret) => {
    //something
  }
)

向指定用户发送点对点消息或点对点的离线消息。

该方法允许你向离线用户发送点对点消息。如果指定用户在你发送离线消息时不在线,消息服务器会保存该条消息。请注意,目前我们只为每个接收端保存 200 条离线消息最长七天。当保存的离线消息超出限制时,最老的信息将会被最新的消息替换。

类型参数描述
StringpeerId接收者的用户 ID。该字符串不可超过 64 字节。以下为支持的字符集范围:
26 个小写英文字母 a-z
26 个大写英文字母 A-Z
10 个数字 0-9
空格
"!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ","
peerId 不能设为空、 null ,或 "null"
Stringtext待设置的文本消息正文或自定义二进制消息的文字描述。最大长度为 32 KB
booleanenableHistoricalMessaging是否保存为历史消息:
true: 将该消息保存为历史消息。
false: (默认)不将该消息保存为历史消息。
booleanenableOfflineMessaging是否设置为离线消息:
true: 将该消息设为离线消息。
false: (默认)不将该消息设为离线消息。
本设置仅适用于点对点消息,不适用于频道消息

返回

  • res.code
    • 0 :对端已接收到点对点消息
    • 1 :点对点消息发送失败
    • 2 :点对点消息发送超时。当前的超时设置为 10 秒
    • 3 :接收者处于离线状态,无法接收点对点消息
    • 4 :对方不在线,发出的离线点对点消息未被收到。但是服务器已经保存这条消息并将在用户上线后重新发送。
    • 5 :发送消息(点对点消息和频道消息一并计算在内)超过 60 次/秒的上限
    • 6 :用户 ID 无效
    • 7 :消息为 null 或超出 32 KB 的长度限制
    • 8 :消息接收方的 SDK 是早期版本,因此无法识别此消息
    • 101 : anyRTC 云平台 RTM 服务未完成初始化
    • 102 :发送点对点消息前未调用 login() 方法或者 login() 方法调用未成功

createChannel()

rtmModule.createChannel(
  {
    channelId: '',
  },
  (ret) => {
    //something
  }
)

创建 RTM 频道。

注解

一个 Rtm 实例中可以创建多个频道。但是同一个用户只能同时加入最多 20 个频道。请调用 channelRelease() 方法销毁不再使用的 RtmChannel 实例资源。你当然可以调用 release() 方法释放当前 Rtm 实例的 所有 资源,但是我们 不建议 你依赖 SDK 去释放 RtmChannel 资源。

参数描述
StringchannelIdRTM 频道名称。该字符串长度在 64 字节以内。以下为支持的字符集范围:
26 个小写英文字母 a-z
26 个大写英文字母 A-Z 1
0 个数字 0-9
空格
"!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ","
channelId 不能设为空、null,或 "null"

返回

  • res.code
    • 0 :创建频道成功

queryPeersOnlineStatus()

rtmModule.queryPeersOnlineStatus(
  {
    peerIds: ['uid1', 'uid2'],
  },
  (res) => {
    //smething
  }
)

查询指定用户的在线状态。

  • 在线:用户已登录到 RTM 系统。
  • 不在线:用户已登出 RTM 系统或因其他原因与 RTM 系统断开连接。
类型参数描述
ArraypeerIds用户 ID 列表。

返回

  • res.code

    • 0 :查询用户状态成功
    • 1 :查询用户状态失败
    • 2 :查询参数无效
    • 3 :查询被拒绝
    • 4 :服务器响应超时。当前的超时设置为 10 秒
    • 5 :方法调用过于频繁。超过 10 次每 5 秒的上限
    • 101 :SDK 未完成初始化
    • 102 :查询指定用户在线状态前未调用 login() 方法或者 login() 方法调用未成功
  • res.peerOnlineStatus:用户在线状态列表

    • peerId: 用户
    • state: 状态
      • 0 :用户在线
      • 1 : 连接状态不稳定(服务器连续 6 秒未收到来自 SDK 的数据包)
      • 2 : 用户不在线(用户未登录或已登出 anyRTC 云平台 RTM 系统,或服务器连续 30 秒未收到来自 SDK 的数据包)

subscribePeersOnlineStatus()

rtmModule.subscribePeersOnlineStatus(
  {
    peerIds: ['uid1', 'uid2'],
  },
  (res) => {
    //smething
  }
)

订阅指定单个或多个用户的在线状态。

  • 首次订阅成功后,SDK 会通过 onPeersOnlineStatusChanged 回调返回被订阅用户在线状态。
  • 每当被订阅用户在线状态发生变化时,SDK 都会通过 onPeersOnlineStatusChanged 回调通知订阅方。
  • 如果 SDK 在断线重连过程中有被订阅用户的在线状态发生改变,SDK 会在重连成功时通过 onPeersOnlineStatusChanged 回调通知订阅方。

Note

  • 用户登出 RTM 系统后,所有之前的订阅内容都会被清空;重新登录后,如需保留之前订阅内容则需重新订阅。
  • SDK 会在网络连接中断时进入断线重连状态。重连成功时 SDK 会自动重新订阅之前订阅用户,无需人为干预。
类型参数描述
ArraypeerIds指定用户的 ID 列表。

返回

  • res.code
    • 0 :方法调用成功,或订阅退订操作成功
    • 1 :通用未知错误。订阅或退订操作失败
    • 2 :无效的输入参数
    • 3 :订阅或退订被拒绝
    • 4 :订阅超时
    • 5 :方法调用过于频繁。超过 10 次每 5 秒的限制
    • 6 :订阅人数超过 512 人的上限
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

unsubscribePeersOnlineStatus()

rtmModule.unsubscribePeersOnlineStatus(
  {
    peerIds: ['uid1', 'uid2'],
  },
  (res) => {
    //smething
  }
)

退订指定单个或多个用户的在线状态。

类型参数描述
ArraypeerIds指定用户的 ID 列表。

返回

  • res.code
    • 0 :方法调用成功,或订阅退订操作成功
    • 1 :通用未知错误。订阅或退订操作失败
    • 2 :无效的输入参数
    • 3 :订阅或退订被拒绝
    • 4 :订阅超时
    • 5 :方法调用过于频繁。超过 10 次每 5 秒的限制
    • 6 :订阅人数超过 512 人的上限
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

queryPeersBySubscriptionOption()

rtmModule.queryPeersBySubscriptionOption(
  {
    option: 0,
  },
  (res) => {
    //smething
  }
)

获取某特定内容被订阅的用户列表。

类型参数描述
intoption被订阅的类型:
0: 订阅指定用户的在线状态。

返回

  • res.code
    • 0 :方法调用成功,或根据订阅类型获取被订阅用户列表成功
    • 1 :通用错误。根据订阅类型获取被订阅用户列表失败
    • 2 :服务器响应超时。当前的超时设置为 5 秒
    • 3 :方法调用过于频繁。超过 10 次每 5 秒的限制
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功
  • res.options(Array): 被订阅的用户列表 。

setLocalUserAttributes()

rtmModule.setLocalUserAttributes({
    "age":10,
    "name":"anyRtc",
    ...

},(res)=>{
    //smething
})

全量设置本地用户的属性。

setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。

类型参数描述
JSONattributes待设置的属性:以键值对形式 key:value设置属性。

返回

  • res.code
    • 0 :方法调用成功
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

addOrUpdateLocalUserAttributes()

rtmModule.addOrUpdateLocalUserAttributes({
    "age":10,
    "name":"anyRtc",
    ...

},(res)=>{
    //smething
})

添加或更新本地用户的属性。

setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。

  • 如果属性已存在,该方法更新本地用户的已有属性;
  • 如果属性不存在,该方法增加本地用户的属性。
类型参数描述
JSONattributes待增加或更新的属性列表:以键值对形式 key:value设置属性。

返回

  • res.code
    • 0 :方法调用成功
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

deleteLocalUserAttributesByKeys()

rtmModule.deleteLocalUserAttributesByKeys(
  {
    attributeKeys: [],
  },
  (res) => {
    //smething
  }
)

删除本地用户的指定属性。

setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributes 一并计算在内:调用频率上限为每 5 秒 10 次 。

类型参数描述
ArrayattributeKeys属性名列表。

返回

  • res.code
    • 0 :方法调用成功
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

clearLocalUserAttributes()

rtmModule.addOrUpdateLocalUserAttributes((res) => {
  //smething
})

清空本地用户的所有属性。

setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。

返回

  • res.code
    • 0 :方法调用成功
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

getUserAttributes()

rtmModule.getUserAttributes(
  {
    userId: 'userId',
  },
  (res) => {
    //smething
  }
)

获取指定用户的全部属性。

getUserAttributesgetUserAttributesByKeys 一并计算在内:调用频率上限为每 5 秒 40 次。

类型参数描述
StringuserId指定用户的用户 ID。

返回

  • res.code
    • 0 :方法调用成功
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功
  • res.rtmAttributes(Array): 指定用户的全部属性。

getUserAttributesByKeys()

rtmModule.getUserAttributesByKeys(
  {
    userId: 'userId',
    attributeKeys: [],
  },
  (res) => {
    //smething
  }
)

获取指定用户指定属性名的属性。

getUserAttributesgetUserAttributesByKeys 一并计算在内:调用频率上限为每 5 秒 40 次。

类型参数描述
StringuserId指定用户的用户 ID。
ArrayattributeKeys属性名列表。

返回

  • res.code
    • 0 :方法调用成功。
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功
  • res.rtmAttributes(Array): 指定用户指定属性名的属性。

setChannelAttributes()

rtmModule.setChannelAttributes(
  {
    channelId: 'channelId',
    enableNoticeMembers: false,
    attributes: {}, //{} ==> JSON 对象
  },
  (res) => {
    //smething
  }
)

全量设置某指定频道的属性。

注解

类型参数描述
StringchannelId该指定频道的频道 ID。
BooleanenableNoticeMembers是否通知所有频道成员本次频道属性变更。该标志位仅对本次 API 调用有效:
true: 通知所有频道成员本次频道属性变更。
false: (默认) 不通知所有频道成员本次频道属性变更。
Arrayattributes频道属性列表:JSOn 对象形式 key:val设置属性

返回

  • res.code
    • 0 :方法调用成功。
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

addOrUpdateChannelAttributes()

rtmModule.addOrUpdateChannelAttributes(
  {
    channelId: 'channelId',
    enableNoticeMembers: false,
    attributes: {}, //{} ==> JSON 对象
  },
  (res) => {
    //smething
  }
)

添加或更新某指定频道的属性。

  • 如果属性已存在,该方法更新该频道的已有属性;
  • 如果属性不存在,该方法增加该频道的属性。

注解

类型参数描述
StringchannelId该指定频道的频道 ID。
BooleanenableNoticeMembers是否通知所有频道成员本次频道属性变更。该标志位仅对本次 API 调用有效:
true: 通知所有频道成员本次频道属性变更。
false: (默认) 不通知所有频道成员本次频道属性变更。
Arrayattributes频道属性列表:JSOn 对象形式 key:val设置属性

返回

  • res.code
    • 0 :方法调用成功。
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

deleteChannelAttributesByKeys()

rtmModule.addOrUpdateChannelAttributes(
  {
    channelId: 'channelId',
    attributeKeys: [],
    enableNoticeMembers: false,
  },
  (res) => {
    //smething
  }
)

删除某指定频道的指定属性。

注解

你无需加入指定频道即可为该频道更新频道属性。当某频道处于空频道状态(无人状态)数分钟后,该频道的频道属性将被清空。如果存在多个用户有权限修改频道属性,那么我们建议在修改频道属性前先通过调用 getChannelAttributes 方法更新本地频道属性缓存。setLocalUserAttributesaddOrUpdateChannelAttributesdeleteChannelAttributesByKeys ,和 clearChannelAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。

类型参数描述
StringchannelId该指定频道的频道 ID。
ArrayattributeKeys频道属性名列表。
BooleanenableNoticeMembers是否通知所有频道成员本次频道属性变更。该标志位仅对本次 API 调用有效:
true: 通知所有频道成员本次频道属性变更。
false: (默认) 不通知所有频道成员本次频道属性变更。

返回

  • res.code
    • 0 :方法调用成功
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

clearChannelAttributes()

rtmModule.clearChannelAttributes(
  {
    channelId: 'channelId',
    enableNoticeMembers: false,
  },
  (res) => {
    //smething
  }
)

清空某指定频道的属性。

注解

你无需加入指定频道即可清空该频道属性。setLocalUserAttributesaddOrUpdateChannelAttributesdeleteChannelAttributesByKeys ,和 clearChannelAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。

参数描述
StringchannelId该指定频道的频道 ID。
BooleanenableNoticeMembers是否通知所有频道成员本次频道属性变更。该标志位仅对本次 API 调用有效:
true: 通知所有频道成员本次频道属性变更。
false: (默认) 不通知所有频道成员本次频道属性变更。

返回

  • res.code
    • 0 :方法调用成功。
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

getChannelAttributes()

rtmModule.getChannelAttributes(
  {
    channelId: 'channelId',
  },
  (res) => {
    //smething
  }
)

查询某指定频道的全部属性。

注解

类型参数描述
StringchannelId该指定频道的频道 ID。

返回

  • res.code
    • 0 :方法调用成功。
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功
  • res.rtmChannelAttributes(Array):指定频道的全部属性。

getChannelAttributesByKeys()

rtmModule.getChannelAttributesByKeys(
  {
    channelId: 'channelId',
    attributeKeys: [],
  },
  (res) => {
    //smething
  }
)

查询某指定频道指定属性名的属性。

注解

参数描述
channelId该指定频道的频道 ID。
attributeKeys频道属性名列表。

返回

  • res.code
    • 0 :方法调用成功。
    • 1 :废弃
    • 2 :方法调用失败
    • 3 :无效的输入参数
    • 4 :本次操作后,用户属性或频道属性超过上限
    • 5 :方法调用频率超过限制
    • 6 :未找到指定用户。该用户或者处于离线状态或者并不存在
    • 7 :属性操作超时。当前的超时设定为 5 秒
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功
  • res.rtmChannelAttributes(Array):指定频道指定属性名的属性。

getChannelMemberCount()

rtmModule.getChannelMemberCount(
  {
    channelIds: [],
  },
  (res) => {
    //smething
  }
)

查询单个或多个频道的成员人数。

注解

  • 该方法的调用频率上限为每秒 1 次。
  • 不支持一次查询超过 32 个频道的成员人数。
类型参数描述
ArraychannelIds指定频道名列表。

返回

  • res.code
    • 0 :获取指定频道成员人数成功
    • 1 :通用未知错误
    • 2 :频道 ID 无效
    • 3 :方法调用过于频繁。超过每秒 1 次的限制
    • 4 :服务器响应超时。当前的当前的超时设定为 5 秒
    • 5 :查询频道数超过 32 条上限。
    • 101 :anyRTC 云平台 RTM 服务未完成初始化
    • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功
  • res.rtmChannelMemberCounts(Array):单个或多个频道的成员人数。

setParameters()

rtmModule.setParameters((res) => {
  //smething
})

通过 JSON 配置 SDK 提供技术预览或特别定制功能。功能有些特殊,使用前可以咨询客服。

参数

咨询客服,使用特定功能。

返回

  • res.code

    • 0 :方法调用成功。

setLogFile()

rtmModule.setLogFile(
  {
    filePath: '',
  },
  (res) => {
    //smething
  }
)

设定日志文件的默认地址。

类型参数描述
StringfilePath日志文件的绝对路径。编码格式为 UTF-8。
  • Android 平台的日志默认路径为 /sdcard/{Package name of the App}/ar_rtm_sdk.log
  • iOS 平台的日志默认路径为 App Sandbox/Library/caches/ar_rtm_sdk.log
  • 注解

    • 请确保指定的路径存在并且可写。
    • 如需调用本方法,请在调用 createInstance 方法后立即调用,否则会造成输出日志不完整。

    返回

    • res.code

      • 0 :方法调用成功。

    setLogFilter()

    rtmModule.setLogFilter(
      {
        filter: 0,
      },
      (res) => {
        //smething
      }
    )
    

    设置日志输出等级。

    设置 SDK 的输出日志输出等级。不同的输出等级可以单独或组合使用。日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING 和 INFO。选择一个级别,你就可以看到在该级别之前所有级别的日志信息。例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。

    参数描述
    filter日志输出等级:
    LOG_FILTER_OFF(0): 不输出日志信息。
    LOG_FILTER_INFO(0x0f): 输出 CRITICAL、ERROR、WARNING 和 INFO 级别的日志信息。 我们推荐你将日志级别设为该等级。
    LOG_FILTER_WARNING(0x0e): 输出 CRITICAL、ERROR 和 WARNING 级别的日志信息。 LOG_FILTER_ERROR(0x0c): 输出 CRITICAL 和 ERROR 级别的日志信息。 LOG_FILTER_CRITICAL(0x08): 输出 CRITICAL 级别的日志信息。

    返回

    • res.code

      • 0 :方法调用成功。

    setLogFileSize()

    rtmModule.setLogFileSize(
      {
        fileSizeInKBytes: 0,
      },
      (res) => {
        //smething
      }
    )
    

    设置日志文件大小。

    设置 SDK 输出日志文件的大小,单位为 KB。 SDK 设有 2 个日志文件,每个文件大小为 512 KB。如果你将 fileSizeInKByte 设置为 1024 KB, SDK 会最多输出 2 MB 的日志文件。

    Note:低于 512 KB 或者高于 10 MB 的日志大小设置不会生效。

    类型参数描述
    intfileSizeInKBytes指定 SDK 输出日志文件的大小,单位为 KB。

    返回

    • res.code

      • 0 :方法调用成功。

    join()

    rtmModule.join(
      {
        channelId: 'channelId',
      },
      (res) => {
        //smething
      }
    )
    

    加入频道。

    注解

    同一用户只能同时加入最多 20 个频道。加入频道超限时用户会收到错误码 JOIN_CHANNEL_ERR_FAILURE(1)。

    返回

    • res.code

      • 0 :用户成功加入频道
      • 1 :用户加入频道失败
      • 2 :加入房间被拒绝
      • 3 :用户无法加入频道。因为参数无效
      • 4 :用户加入频道超时。当前的超时设置为 5 秒
      • 5 :同时加入的频道数超过 20 上限
      • 6 :用户正在加入频道或已成功加入频道
      • 7 :方法调用超过 50 次每 3 秒的上限
      • 8 :加入相同频道的频率超过每 5 秒 2 次的上限
      • 101 :anyRTC 云平台 RTM 服务未完成初始化
      • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

    leave()

    rtmModule.leave(
      {
        channelId: 'channelId',
      },
      (res) => {
        //smething
      }
    )
    

    离开频道。

    返回

    • res.code

      • 0 :用户成功离开频道
      • 1 :用户离开频道失败
      • 2 :离开频道被拒绝
      • 3 :用户已不在频道内
      • 101 :anyRTC 云平台 RTM 服务未完成初始化
      • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

    sendChannelMessage()

    rtmModule.sendChannelMessage(
      {
        channelId: 'channelId',
        text: 'Hi anyRtc',
        enableHistoricalMessaging: false,
        enableOfflineMessaging: false,
      },
      (ret) => {
        //something
      }
    )
    

    发送频道消息。

    注解

    对于 RTM SDK for Android Java,发送消息(包括频道消息和点对点消息)的调用频率上限为每 3 秒 180 次。对于 RTM SDK for Linux Java,发送消息(包括频道消息和点对点消息)的调用频率上限为每 3 秒 300 次。

    类型参数描述
    StringchannelId该指定频道的频道 ID。
    Stringtext待设置的文本消息正文或自定义二进制消息的文字描述。最大长度为 32 KB
    booleanenableHistoricalMessaging是否保存为历史消息:
    true: 将该消息保存为历史消息。
    false: (默认)不将该消息保存为历史消息。
    booleanenableOfflineMessaging是否设置为离线消息:
    true: 将该消息设为离线消息。
    false: (默认)不将该消息设为离线消息。

    返回

    • res.code

      • 0 :服务端已接收到频道消息
      • 1 :频道消息发送失败
      • 2 :服务器未收到频道消息或者 SDK 未在 10 秒内收到服务器响应。
      • 3 :发送消息(点对点消息和频道消息一并计算在内)超过 60 次/秒的上限
      • 4 :消息为 null 或超出 32 KB 的长度限制
      • 101 :anyRTC 云平台 RTM 服务未完成初始化
      • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

    getMembers()

    rtmModule.getMembers(
      {
        channelId: 'channelId',
      },
      (res) => {
        //smething
      }
    )
    

    获取频道成员列表。

    注解

    该方法的调用频率上限为每 2 秒 5 次。

    参数描述
    channelId该指定频道的频道 ID。

    返回

    • res.code
      • 0 :方法调用成功。
      • 其他:方法调用失败。
    • res.rtmChannelMembers(Array): 频道成员列表。。

    channelRelease()

    rtmModule.channelRelease(
      {
        channelId: 'channelId',
      },
      (res) => {
        //smething
      }
    )
    

    释放该频道的所有资源。

    注解

    请不要在任何回调方法中调用该方法。

    返回

    • res.code

      • 0 :频道成员列表获取成功
      • 1 :频道成员列表获取失败
      • 2 :获取成员列表被拒绝
      • 3 :获取频道内成员列表超时。当前的超时设置为 5 秒
      • 4 :方法调用频率超过 5 次每 2 秒的上限
      • 5 :用户不在频道内
      • 101 :anyRTC 云平台 RTM 服务未完成初始化
      • 102 :本次操作前未调用 login() 方法或者 login() 方法调用未成功

    setCallEventListener()

    rtmModule.setCallEventListener()
    

    设置邀请呼叫实例的监听器。

    注解

    在使用呼叫邀请的方法,必须调用 setCallEventListener 方法,才能使用 sendLocalInvitationacceptremoteinvitationrefuseremoteinvitationcancelLocalInvitation方法

    sendLocalInvitation()

    rtmModule.sendLocalInvitation(
      {
        calleeId: 'calleeId',
        channelId: 'channelId',
        content: 'xxx',
      },
      (res) => {
        //smething
      }
    )
    

    发送呼叫邀请给对方。

    类型参数描述
    StringcalleeId被呼叫者的 user ID。
    StringchannelId供主叫设置频道(可选)。
    Stringcontent邀请内容。若编码为 UTF-8, content 的对应的字节数不得超过 8 KB(可选)。

    返回

    • res.code

      • 0 :呼叫邀请相关 API 调用成功
      • 1 :呼叫邀请相关 API 调用失败:参数错误,比如参数 content 的值超过最大限制长度 8K 字节
      • 2 :呼叫邀请相关 API 调用失败:未开始
      • 3 :呼叫邀请相关 API 调用结果:已结束
      • 4 :呼叫邀请相关 API 调用结果:已接受邀请
      • 5 :呼叫邀请相关 API 调用结果:呼叫邀请已发送

    acceptRemoteInvitation()

    rtmModule.acceptRemoteInvitation(
      {
        calleeId: 'calleeId',
        response: 'xxx',
      },
      (res) => {
        //smething
      }
    )
    

    接受来自对方的呼叫邀请。

    参数描述
    StringcalleeId供被叫获取主叫的用户 ID。
    Stringresponse邀请响应。若编码为 UTF-8, response 的对应的字节数不得超过 8 KB(可选)。

    返回

    • res.code

      • 0 :呼叫邀请相关 API 调用成功
      • 1 :呼叫邀请相关 API 调用失败:参数错误,比如参数 content 的值超过最大限制长度 8K 字节
      • 2 :呼叫邀请相关 API 调用失败:未开始
      • 3 :呼叫邀请相关 API 调用结果:已结束
      • 4 :呼叫邀请相关 API 调用结果:已接受邀请
      • 5 :呼叫邀请相关 API 调用结果:呼叫邀请已发送

    refuseRemoteInvitation()

    rtmModule.refuseRemoteInvitation(
      {
        calleeId: 'calleeId',
        response: 'xxx',
      },
      (res) => {
        //smething
      }
    )
    

    拒绝来自对方的呼叫邀请。

    参数描述
    calleeId供被叫获取主叫的用户 ID。
    response拒绝响应。若编码为 UTF-8, response 的对应的字节数不得超过 8 KB(可选)。

    返回

    • res.code

      • 0 :呼叫邀请相关 API 调用成功
      • 1 :呼叫邀请相关 API 调用失败:参数错误,比如参数 content 的值超过最大限制长度 8K 字节
      • 2 :呼叫邀请相关 API 调用失败:未开始
      • 3 :呼叫邀请相关 API 调用结果:已结束
      • 4 :呼叫邀请相关 API 调用结果:已接受邀请
      • 5 :呼叫邀请相关 API 调用结果:呼叫邀请已发送。

    cancelLocalInvitation()

    rtmModule.cancelLocalInvitation(
      {
        calleeId: 'calleeId',
        content: 'xxx',
      },
      (res) => {
        //smething
      }
    )
    

    取消给对方的呼叫邀请

    类型参数描述
    StringcalleeId被呼叫者的 user ID。
    Stringcontent取消邀请响应。若编码为 UTF-8, response 的对应的字节数不得超过 8 KB(可选)。

    返回

    • res.code

      • 0 :呼叫邀请相关 API 调用成功
      • 1 :呼叫邀请相关 API 调用失败:参数错误,比如参数 content 的值超过最大限制长度 8K 字节
      • 2 :呼叫邀请相关 API 调用失败:未开始
      • 3 :呼叫邀请相关 API 调用结果:已结束
      • 4 :呼叫邀请相关 API 调用结果:已接受邀请
      • 5 :呼叫邀请相关 API 调用结果:呼叫邀请已发送