API Overview Document

Agora Real-time Messaging (RTM) SDK 提供了稳定可靠、低延时、高并发的全球消息云服务,帮助你快速构建实时场景。

如无特别说明,本页列出的大多数 RTM 核心业务方法都应在调用 loginByToken 方法成功收到 AgoraRtmLoginErrorOk 错误码后调用。

Agora RTM SDK 提供以下功能:

登录登出相关

SDK 与 RTM 服务器的连接状态是 RTM 开发过程需要理解的核心概念,详见

方法 描述
initWithAppId 创建并初始化一个 AgoraRtmKit 实例。
loginByToken 登录 Agora RTM 系统。
logoutWithCompletion 登出 Agora RTM 系统。
事件 描述
connectionStateChanged SDK 与 Agora RTM 系统连接状态发生改变回调。

点对点消息

方法 描述
initWithText 创建并初始化一个 AgoraRtmMessage 文本消息实例。
initWithRawData 创建并初始化一个 AgoraRtmRawMessage 自定义二进制消息实例。
sendMessage 向指定用户发送点对点消息或点对点的离线消息。
事件 描述
messageReceived 收到点对点消息回调。

查询用户在线状态

方法 描述
queryPeersOnlineStatus 查询用户在线状态。

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

Method Description
subscribePeersOnlineStatus 订阅指定单个或多个用户的在线状态。
unsubscribePeersOnlineStatus 解除订阅指定单个或多个用户的在线状态。
queryPeersBySubscriptionOption 获取某特定内容被订阅的用户列表。
Event Description
PeersOnlineStatusChanged 被订阅用户在线状态改变回调。

用户属性增删改查

方法 描述
setLocalUserAttributes 全量设置本地用户的属性。
addOrUpdateLocalUserAttributes 添加或更新本地用户的属性。
deleteLocalUserAttributesByKeys 删除本地用户的指定属性。
clearLocalUserAttributes 清空本地用户的属性。
getUserAttributes 获取指定用户的全部属性。
getUserAttributesByKeys 获取指定用户指定属性名的属性。

频道属性增删改查

方法 描述
setChannelAttributes 全量设置某指定频道的属性。
addOrUpdateChannelAttributes 添加或更新某指定频道的属性。
deleteChannelAttributesByKeys 删除某指定频道的指定属性。
clearChannelAttributes 清空某指定频道的属性。
getChannelAttributes 查询某指定频道的全部属性。
getChannelAttributesByKeys 查询某指定频道指定属性名的属性。
频道属性更新事件 描述
attributeUpdate 当频道属性更新时返回当前频道的所有属性。

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

方法 描述
getChannelMemberCount 查询单个或多个频道的成员人数。

加入离开频道相关

方法 描述
createChannelWithId 创建一个 AgoraRtmChannel 频道。
joinWithCompletion 加入频道。
leaveWithCompletion 离开频道。
destroyChannelWithId 释放一个 AgoraRtmChannel 本地频道实例占用的资源。
事件 描述
memberJoined 远端用户加入频道回调。
memberLeft 远端频道成员离开频道回调。
memberCount 频道成员人数更新回调。返回最新频道成员人数。

频道消息

方法 描述
initWithText 创建一个 AgoraRtmMessage 消息实例。
initWithRawData 创建并初始化一个 AgoraRtmRawMessage 自定义二进制消息实例。
sendMessage 供频道成员向所在频道发送频道消息。
事件 描述
messageReceived 收到频道消息回调。

获取频道成员列表

方法 描述
getMembersWithCompletion 获取当前频道内成员列表。

呼叫邀请管理

  • 主叫取消已发送的呼叫邀请的 API 时序图:

  • 被叫接受呼叫邀请的 API 时序图:

  • 被叫拒绝呼叫邀请的 API 时序图:

呼叫管理器获取方法 描述
getRtmCallKit 获取 AgoraRtmCallKit 呼叫管理器实例。
供主叫调用的方法 描述
initWithCalleeId 供主叫创建、管理一个 AgoraRtmLocalInvitation 呼叫邀请对象。
sendLocalInvitation 供主叫发送呼叫邀请给对端。
cancelLocalInvitation 供主叫取消已发送的呼叫邀请。
供被叫调用的方法 描述
acceptRemoteInvitation 供被叫接受呼叫邀请。
refuseRemoteInvitation 供被叫拒绝呼叫邀请。
返回给主叫的事件 描述
localInvitationReceivedByPeer 返回给主叫的回调:被叫已收到呼叫邀请。
localInvitationCanceled 返回给主叫的回调:呼叫邀请已被取消。
localInvitationAccepted 返回给主叫的回调:被叫已接受呼叫邀请。
localInvitationRefused 返回给主叫的回调:被叫已拒绝呼叫邀请。
localInvitationFailure 返回给主叫的回调:呼叫邀请过程失败。
返回给被叫的事件 描述
remoteInvitationReceived 返回给被叫的回调:收到一个呼叫邀请。
remoteInvitationCanceled 返回给被叫的回调:主叫已取消呼叫邀请。
remoteInvitationAccepted 返回给被叫的回调:接受呼叫邀请成功。
remoteInvitationRefused 返回给被叫的回调:拒绝呼叫邀请成功。
remoteInvitationFailure 返回给被叫的回调:呼叫邀请过程失败。

更新 Token

方法 描述
renewToken 更新 SDK 的 RTM Token。
事件 描述
rtmKitTokenDidExpire: (SDK 断线重连时触发)当前使用的 RTM Token 已超过 24 小时的签发有效期。

日志设置与版本查询

  • 日志相关操作在调用 initWithAppId 方法创建并初始化 AgoraRtmKit 实例后即可进行,无需等到调用 loginByToken 方法成功。
  • 版本查询操作为静态方法,可在创建并初始化 AgoraRtmKit 实例前进行。
方法 描述
setLogFile 设定日志文件的默认地址。
setLogFileSize 设置 SDK 输出的单个日志文件的大小,单位为 KB。 SDK 设有 2 个大小相同的日志文件。
setLogFilters 设置日志输出等级。
getSDKVersion 获取 Agora RTM SDK 的版本信息。

定制方法

方法 描述
‭setParameters 通过 JSON 配置 SDK 提供技术预览或特别定制功能。

区域限制和云代理

方法 描述
‭setRtmServiceContext 设置所有 AgoraRtmKit 实例的上下文。你在成功调用此方法之后创建的所有 AgoraRtmKit 实例都符合此方法设置的上下文。

状态码

AgoraRtmConnectionState

SDK 与 Agora RTM 系统的连接状态。

状态码 描述
AgoraRtmConnectionStateDisconnected 1: 初始状态。SDK 未连接到 Agora RTM 系统。

App 调用 loginByToken 方法后,SDK 开始登录 Agora RTM 系统,触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateConnecting

AgoraRtmConnectionStateConnecting 2: SDK 正在登录 Agora RTM 系统。

  • 如果 SDK 登录成功,会触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateConnected
  • 如果 SDK 登录失败,会触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateDisconnected
  • AgoraRtmConnectionStateConnected 3: SDK 已登录 Agora RTM 系统。

  • 如果 SDK 由于网络原因断开与 Agora RTM 系统的连接,SDK 触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateReconnecting
  • 如果 SDK 由于重复登录而被服务器踢出,SDK 触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateAborted
  • 如果 App 调用 logoutWithCompletion 方法成功登出系统,SDK 触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateDisConnected
  • AgoraRtmConnectionStateReconnecting 4: SDK 与 Agora RTM 系统连接由于网络原因出现中断,SDK 正在尝试自动重连 Agora RTM 系统。

  • 如果 SDK 登录成功,SDK 触发 connectionStateChanged 回调,连接状态变为 AgoraRtmConnectionStateConnected。SDK 会自动加入中断时用户所在频道,并自动将本地用户属性同步到服务端。
  • 如果 SDK 登录失败,SDK 会保持 AgoraRtmConnectionStateReConnecting 状态,继续自动重连。
  • AgoraRtmConnectionStateAborted 5: SDK 放弃登录 Agora RTM 系统。

    可能原因:另一实例已经以同一用户 ID 登录 Agora RTM 系统。

    在此之后,SDK 需要调用 logoutWithCompletion 方法退出登录,再视情况调用 loginByToken 方法重新登录系统。

    AgoraRtmConnectionChangeReason

    SDK 与 Agora RTM 系统的连接状态发生改变的原因。

    状态码 描述
    AgoraRtmConnectionChangeReasonLogin 1: SDK 正在登录 Agora RTM 系统。
    AgoraRtmConnectionChangeReasonLoginSuccess 2: SDK 成功登录 Agora RTM 系统。
    AgoraRtmConnectionChangeReasonLoginFailure 3: SDK 登录失败。
    AgoraRtmConnectionChangeReasonLoginTimeout 4: SDK 未在 12 秒内登录 Agora RTM 系统,登录超时。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmConnectionChangeReasonInterrupted 5: SDK 和 Agora RTM 系统的连接由于网络问题而断开超过 4 秒。
    AgoraRtmConnectionChangeReasonLogout 6: 用户已调用 logoutWithCompletion 方法登出 Agora RTM 系统。
    AgoraRtmConnectionChangeReasonBannedByServer 7: 登录被 Agora RTM 服务器禁止。
    AgoraRtmConnectionChangeReasonRemoteLogin 8: 本账号异地登陆,本地断开连接。

    AgoraRtmMessageType

    消息类别。

    状态码 描述
    AgoraRtmMessageTypeUndefined 0: 未定义的消息类别。
    AgoraRtmMessageTypeText 1: 文本消息。
    AgoraRtmMessageTypeRaw 2: 自定义二进制消息。

    AgoraRtmPeerSubscriptionOptions

    订阅类型。

    状态码 描述
    AgoraRtmPeerSubscriptionOnlineStatus 0: 订阅指定用户的在线状态。

    AgoraPeerOnlineState

    用户在线状态类型。

    状态码 描述
    AgoraRtmPeerOnlineStateOnline 0: 用户在线。
    AgoraRtmPeerOnlineStateUnreachable 1: 连接状态不稳定(服务器连续 6 秒未收到来自 SDK 的数据包)。
    AgoraRtmPeerOnlineStateOffline 2: 用户不在线(用户未登录或已登出 Agora RTM 系统,或服务器连续 30 秒未收到来自 SDK 的数据包)。

    AgoraRtmLocalInvitationState

    返回给主叫的呼叫邀请状态码。

    状态码 描述
    AgoraRtmLocalInvitationStateIdle 0: 返回给主叫的呼叫邀请状态码:初始状态。
    AgoraRtmLocalInvitationStateSentToRemote 1:仅供内部使用。
    AgoraRtmLocalInvitationStateReceivedByRemote 2:返回给主叫的呼叫邀请状态码:被叫已收到呼叫邀请。
    AgoraRtmLocalInvitationStateAcceptedByRemote 3:返回给主叫的呼叫邀请状态码:被叫已接受呼叫邀请。
    AgoraRtmLocalInvitationStateRefusedByRemote 4:返回给主叫的呼叫邀请状态码:被叫已拒绝呼叫邀请。
    AgoraRtmLocalInvitationStateCanceled 5:返回给主叫的呼叫邀请状态码:已成功取消呼叫邀请。
    AgoraRtmLocalInvitationStateFailure 6:返回给主叫的呼叫邀请状态码:呼叫邀请过程失败。

    AgoraRtmRemoteInvitationState

    返回给被叫的呼叫邀请状态码。

    状态码 描述
    AgoraRtmRemoteInvitationStateIdle 0:返回给被叫的呼叫邀请状态码:被叫收到的邀请的初始状态。
    AgoraRtmRemoteInvitationStateInvitationReceived 1:返回给被叫的呼叫邀请状态码:收到了来自主叫的呼叫邀请。
    AgoraRtmRemoteInvitationStateAcceptSentToLocal 2:仅供内部使用。
    AgoraRtmRemoteInvitationStateRefused 3:返回给被叫的呼叫邀请状态码:已拒绝来自主叫的呼叫邀请。
    AgoraRtmRemoteInvitationStateAccepted 4:返回给被叫的呼叫邀请状态码:已接受来自主叫的呼叫邀请。
    AgoraRtmRemoteInvitationStateCanceled 5:返回给被叫的呼叫邀请状态码:主叫已取消呼叫邀请。
    AgoraRtmRemoteInvitationStateFailure 6:返回给被叫的呼叫邀请状态码:呼叫邀请过程失败。

    AgoraRtmLogFilter

    日志输出等级。

    状态码 描述
    AgoraRtmLogFilterOff 0: 不输出日志信息。
    AgoraRtmLogFilterInfo 0x000f: 输出 CRITICAL、ERROR、WARNING 和 INFO 级别的日志信息。 我们推荐你将日志级别设为该等级。
    AgoraRtmLogFilterWarn 0x000e: 输出 CRITICAL、ERROR 和 WARNING 级别的日志信息。
    AgoraRtmLogFilterError 0x000c: 输出 CRITICAL 和 ERROR 级别的日志信息。
    AgoraRtmLogFilterCritical 0x0008: 输出 CRITICAL 级别的日志信息。
    AgoraRtmLogFilterMask 0x80f: 预留

    错误码

    AgoraRtmChannelMemberCountErrorCode

    查询单个或多个指定频道成员人数的相关错误码。

    错误码 描述
    AgoraRtmChannelMemberCountErrorOk 0: 获取指定频道成员人数成功。
    AgoraRtmChannelMemberCountErrorFailure 1: 通用未知错误。
    AgoraRtmChannelMemberCountErrorInvalidArgument 2: 频道 ID 无效
    AgoraRtmChannelMemberCountErrorTooOften 3: 方法调用过于频繁。超过每秒 1 次的限制。
    AgoraRtmChannelMemberCountErrorTimeout 4: 服务器响应超时。当前的当前的超时设定为 5 秒。
    AgoraRtmChannelMemberCountErrorExceedLimit 5: 查询频道数超过 32 条上限。
    AgoraRtmChannelMemberCountErrorNotInitialized 101: Agora RTM 服务未完成初始化。
    AgoraRtmChannelMemberCountErrorNotLoggedIn 102: 本次操作前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmGetMembersErrorCode

    获取频道成员列表的相关错误码。

    错误码 描述
    AgoraRtmGetMembersErrorOk 0: 频道成员列表获取成功。
    AgoraRtmGetMembersErrorFailure 1: 频道成员列表获取失败。
    AgoraRtmGetMembersErrorRejected 2: 预留错误码
    AgoraRtmGetMembersErrorTimeout 3: 获取频道内成员列表超时。当前的超时设置为 5 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmGetMembersErrorTooOften 4: 方法调用频率超过 5 次每 2 秒的上限。
    AgoraRtmGetMembersErrorNotInChannel 5: 用户不在频道内。
    AgoraRtmGetMembersErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmGetMembersErrorNotLoggedIn 102: 获取频道成员列表前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmInvitationApiCallErrorCode

    呼叫邀请的相关 API 调用的错误码。

    错误码 描述
    AgoraRtmInvitationApiCallErrorOk 0:呼叫邀请相关 API 调用成功。
    AgoraRtmInvitationApiCallErrorInvalidAugment 1:呼叫邀请相关 API 调用失败:参数错误。
    AgoraRtmInvitationApiCallErrorNotStarted 2:呼叫邀请相关 API 调用失败:未开始。
    AgoraRtmInvitationApiCallErrorAlreadyEnd 3:呼叫邀请相关 API 调用结果:已结束。
    AgoraRtmInvitationApiCallErrorAlreadyAccept 4:呼叫邀请相关 API 调用结果:已接受邀请。
    AgoraRtmInvitationApiCallErrorAlreadySent 5:呼叫邀请相关 API 调用结果:呼叫邀请已发送。

    AgoraRtmJoinChannelErrorCode

    用户加入频道相关错误码。

    错误码 描述
    AgoraRtmJoinChannelErrorOk 0: 用户成功加入频道。
    AgoraRtmJoinChannelErrorFailure 1: 用户加入频道失败。
    AgoraRtmJoinChannelErrorRejected 2: 预留错误码
    AgoraRtmJoinChannelErrorInvalidArgument 3: 用户无法加入频道。因为参数无效。
    AgoraRtmJoinChannelErrorTimeout 4: 用户加入频道超时。当前的超时设置为 5 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmJoinChannelErrorExceedLimit 5: 同时加入的频道数超过 20 上限。
    AgoraRtmJoinChannelErrorAlreadyJoined 6: 用户正在加入频道或已成功加入频道。
    AgoraRtmJoinChannelErrorTooOften 7: 方法调用超过 50 次每 3 秒的上限。
    AgoraRtmJoinSameChannelErrorTooOften 8: 加入相同频道的频率超过每 5 秒 2 次的上限。
    AgoraRtmJoinChannelErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmJoinChannelErrorNotLoggedIn 102: 用户加入频道前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmLeaveChannelErrorCode

    用户离开频道相关错误码。

    错误码 描述
    AgoraRtmLeaveChannelErrorOk 0: 用户成功离开频道。
    AgoraRtmLeaveChannelErrorFailure 1: 用户离开频道失败。
    AgoraRtmLeaveChannelErrorRejected 2: 预留错误码
    AgoraRtmLeaveChannelErrorNotInChannel 3: 用户已不在频道内。
    AgoraRtmLeaveChannelErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmLeaveChannelErrorNotLoggedIn 102: 用户在离开频道前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmLoginErrorCode

    登录相关错误码。

    错误码 描述
    AgoraRtmLoginErrorOk 0: 登录成功。没有错误。
    AgoraRtmLoginErrorUnknown 1: 登录失败。原因未知。
    AgoraRtmLoginErrorRejected 2: 预留错误码
    AgoraRtmLoginErrorInvalidArgument 3: 登录参数无效。
    AgoraRtmLoginErrorInvalidAppId 4: App ID 无效。
    AgoraRtmLoginErrorInvalidToken 5: Token 无效。
    AgoraRtmLoginErrorTokenExpired 6: Token 已过期,登录被拒绝。
    AgoraRtmLoginErrorNotAuthorized 7: 登录未经授权。
    AgoraRtmLoginErrorAlreadyLogin 8: 用户已登录,或正在登录 Agora RTM 系统,或未调用 logoutWithCompletion 方法退出 AgoraRtmConnectionStateAborted 状态。
    AgoraRtmLoginErrorTimeout 9: 登录超时。目前的超时设置为 12 秒。
    AgoraRtmLoginErrorLoginTooOften 10: 登录过于频繁。方法 loginByToken 的调用频率超过 2 次每秒的上限。
    AgoraRtmLoginErrorLoginNotInitialized 101: SDK 未完成初始化。

    AgoraRtmLogoutErrorCode

    登出错误码。

    错误码 描述
    AgoraRtmLogoutErrorOk 0: 登出成功。
    AgoraRtmLogoutErrorRejected 1: 预留错误码
    AgoraRtmLogoutErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmLogoutErrorNotLoggedIn 102: 登出 Agora RTM 系统前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmPeerSubscriptionStatusErrorCode

    订阅或取消订阅指定用户状态相关错误码。

    错误码 描述
    AgoraRtmPeerSubscriptionStatusErrorOk 0: 方法调用成功,或订阅取消订阅操作成功。
    AgoraRtmPeerSubscriptionStatusErrorFailure 1: 通用未知错误。订阅或取消订阅操作失败。
    AgoraRtmPeerSubscriptionStatusErrorInvalidArgument 2: 无效的输入参数。
    AgoraRtmPeerSubscriptionStatusErrorRejected 3: 预留错误码
    AgoraRtmPeerSubscriptionStatusErrorTimeout 4: 服务器响应超时。当前的超时设置为 10 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmPeerSubscriptionStatusErrorTooOften 5: 方法调用过于频繁。超过 10 次每 5 秒的限制。
    PEER_SUBSCRIPTION_STATUS_ERR_OVERFLOW 6: 订阅人数超过 512 人的上限。
    AgoraRtmPeerSubscriptionStatusErrorNotInitialized 101: Agora RTM 服务未完成初始化。
    AgoraRtmPeerSubscriptionStatusErrorNotLoggedIn 102: 本次操作前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmProcessAttributeErrorCode

    属性操作相关错误码。

    错误码 描述
    AgoraRtmAttributeOperationErrorOk 0: 方法调用成功。
    AgoraRtmAttributeOperationErrorNotReady 1: DEPRECATED
    AgoraRtmAttributeOperationErrorFailure 2: 方法调用失败。
    AgoraRtmAttributeOperationErrorInvalidArgument 3: 无效的输入参数。
    AgoraRtmAttributeOperationErrorSizeOverflow 4: 本次操作后,用户属性或频道属性超过上限。

  • 用户属性操作:在本次属性操作后,用户属性总大小超过 16 KB 长度限制,或单条用户属性超过 8 KB 长度限制,或用户属性个数超过 32 个的条目上限。
  • 频道属性操作:在本次属性操作后,频道属性总大小超过 32 KB 长度限制,或单条频道属性超过 8 KB 长度限制,或频道属性个数超过 32 个的条目上限。
  • AgoraRtmAttributeOperationErrorTooOften 5: 方法调用频率超过限制。

  • setLocalUserAttributesaddOrUpdateLocalUserAttributesdeleteLocalUserAttributesByKeys ,和 clearLocalUserAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。
  • getUserAttributesgetUserAttributesByKeys 一并计算在内:调用频率上限为每 5 秒 40 次。
  • setChannelAttributesaddOrUpdateChannelAttributesdeleteChannelAttributesByKeys ,和 clearChannelAttributes 一并计算在内:调用频率上限为每 5 秒 10 次。
  • getChannelAllAttributesgetChannelAttributesByKeys 一并计算在内:调用频率上限为每 5 秒 10 次。
  • AgoraRtmAttributeOperationErrorUserNotFound 6: 未找到指定用户。该用户或者处于离线状态或者并不存在。
    AgoraRtmAttributeOperationErrorTimeout 7: 属性操作超时。当前的超时设定为 5 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmAttributeOperationErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmAttributeOperationErrorNotLoggedIn 102: 执行用户属性操作前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmQueryPeersBySubscriptionOptionErrorCode

    根据订阅类型获取被订阅用户列表相关的错误码。

    错误码 描述
    AgoraRtmQueryPeersBySubscriptionOptionErrorOk 0: 方法调用成功,或根据订阅类型获取被订阅用户列表成功。
    AgoraRtmQueryPeersBySubscriptionOptionErrorFailure 1: 通用错误。根据订阅类型获取被订阅用户列表失败。
    AgoraRtmQueryPeersBySubscriptionOptionErrorTimeout 2: 服务器响应超时。当前的超时设置为 5 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmQueryPeersBySubscriptionOptionErrorTooOften 3: 方法调用过于频繁。超过 10 次每 5 秒的限制。
    AgoraRtmQueryPeersBySubscriptionOptionErrorNotInitialized 101: Agora RTM 服务未完成初始化。
    AgoraRtmQueryPeersBySubscriptionOptionErrorNotLoggedIn 102: 本次操作前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmQueryPeersOnlineErrorCode

    查询在线状态相关错误码。

    错误码 描述
    AgoraRtmQueryPeersOnlineErrorOk 0:查询用户状态成功。
    AgoraRtmQueryPeersOnlineErrorFailure 1:查询用户状态失败。
    AgoraRtmQueryPeersOnlineErrorInvalidArgument 2:查询参数无效。
    AgoraRtmQueryPeersOnlineErrorRejected 3:预留错误码
    AgoraRtmQueryPeersOnlineErrorTimeout 4:服务器响应超时。当前的超时设置为 10 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmQueryPeersOnlineErrorTooOften 5:方法调用过于频繁。超过 10 次每 5 秒的上限。
    AgoraRtmQueryPeersOnlineErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmQueryPeersOnlineErrorNotLoggedIn 102: 查询指定用户在线状态前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmLocalInvitationErrorCode

    返回给主叫的呼叫邀请错误码。

    错误码 描述
    AgoraRtmLocalInvitationErrorOk 0:返回给主叫的呼叫邀请错误码:呼叫邀请成功。
    AgoraRtmLocalInvitationErrorRemoteOffline 1:返回给主叫的呼叫邀请错误码:被叫不在线。

    SDK 会在被叫不在线时不断重发呼叫邀请。若消息发送 30 秒后被叫仍未上线,SDK 会返回此错误码。

    AgoraRtmLocalInvitationErrorRemoteNoResponse 2:返回给主叫的呼叫邀请错误码:被叫在呼叫邀请发出后 30 秒无 ACK 响应。
    AgoraRtmLocalInvitationErrorExpire 3:返回给主叫的呼叫邀请错误码:呼叫邀请过期。被叫 ACK 响应呼叫邀请后 60 秒时,呼叫邀请仍未被取消、接受、拒绝,则呼叫邀请过期。
    AgoraRtmLocalInvitationErrorNotLoggedIn 4: 返回给主叫的呼叫邀请错误码:主叫未登录。

    AgoraRtmRemoteInvitationErrorCode

    返回给被叫的呼叫邀请错误码。

    错误码 描述
    AgoraRtmRemoteInvitationErrorOk 0:返回给被叫的呼叫邀请错误码:呼叫邀请成功。
    AgoraRtmRemoteInvitationErrorLocalOffline 1:返回给被叫的呼叫邀请错误码:被叫不在线,呼叫邀请失败。
    AgoraRtmRemoteInvitationErrorAcceptFailure 2:返回给被叫的呼叫邀请错误码:呼叫邀请过程失败。
    AgoraRtmRemoteInvitationErrorExpire 3:返回给被叫的呼叫邀请错误码:呼叫邀请过期。被叫 ACK 响应呼叫邀请后 60 秒呼叫邀请未被取消、接受、拒绝,则呼叫邀请过期。

    AgoraRtmRenewTokenErrorCode

    更新 token 相关错误码。

    错误码 描述
    AgoraRtmRenewTokenErrorOk 0:更新 Token 成功。
    AgoraRtmRenewTokenErrorFailure 1:更新 Token 失败。
    AgoraRtmRenewTokenErrorInvalidArgument 2:无效参数。
    AgoraRtmRenewTokenErrorRejected 3:预留错误码
    AgoraRtmRenewTokenErrorTooOften 4:方法调用过于频繁。超过 2 次每秒上限。
    AgoraRtmRenewTokenErrorTokenExpired 5:输入 Token 已过期。
    AgoraRtmRenewTokenErrorInvalidToken 6:输入 Token 无效。
    AgoraRtmRenewTokenErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmRenewTokenErrorNotLoggedIn 102: 更新 Token 前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmSendChannelMessageErrorCode

    频道消息发送相关错误码。

    错误码 描述
    AgoraRtmSendChannelMessageErrorOk 0: 服务端已接收到频道消息。
    AgoraRtmSendChannelMessageErrorFailure 1: 频道消息发送失败。
    AgoraRtmSendChannelMessageErrorTimeout 2: 服务器未收到频道消息或者 SDK 未在 10 秒内收到服务器响应。当前的超时设置为 10 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmSendChannelMessageTooOften 3: 发送消息(点对点消息和频道消息一并计算在内)超过 每 3 秒 180 次的上限。
    AgoraRtmSendChannelMessageInvalidMessage 4: 消息为 null 或超出 32 KB 的长度限制。
    AgoraRtmSendChannelMessageErrorNotInitialized 101: SDK 未完成初始化。
    AgoraRtmSendChannelMessageNotLoggedIn 102: 发送频道消息前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。

    AgoraRtmSendPeerMessageErrorCode

    发送点对点消息的相关错误码。

    错误码 描述
    AgoraRtmSendPeerMessageErrorOk 0: 对端已接收到点对点消息。
    AgoraRtmSendPeerMessageErrorFailure 1: 点对点消息发送失败。
    AgoraRtmSendPeerMessageErrorTimeout 2: 点对点消息发送超时。当前的超时设置为 10 秒。可能原因:用户正处于 AgoraRtmConnectionStateAborted 状态或 AgoraRtmConnectionStateReconnecting 状态。
    AgoraRtmSendPeerMessageErrorPeerUnreachable 3: 接收者处于离线状态,无法接收点对点消息。
    AgoraRtmSendPeerMessageErrorCachedByServer 4: 对方不在线,发出的离线点对点消息未被收到。但是服务器已经缓存这条消息并将在用户上线后重新发送。
    AgoraRtmSendPeerMessageErrorTooOften 5: 发送消息(点对点消息和频道消息一并计算在内)超过 每 3 秒 180 次的上限。
    AgoraRtmSendPeerMessageErrorInvalidUserId 6: 用户 ID 无效。
    AgoraRtmSendPeerMessageErrorInvalidMessage 7: 消息为 null 或超出 32 KB 的长度限制。
    AgoraRtmSendPeerMessageErrorNotInitialized 101: Agora RTM 服务未完成初始化。
    AgoraRtmSendPeerMessageErrorNotLoggedIn 102: 发送点对点消息前未调用 loginByToken 方法或者 loginByToken 方法调用未成功。