RtmClientEvents

最近更新时间:2022-09-20 05:17:40

本页主要介绍 RtmClient 相关的回调事件。所有回调都是在 RtmClient

概览

事件名描述
ConnectionStateChangedSDK 与 RTM 系统的连接状态改变回调
MessageFromPeer收到来自对端的点对点消息。
RemoteInvitationReceived收到(来自主叫的)呼叫邀请。
PeersOnlineStatusChanged订阅用户在线状态改变回调。
TokenWillExpiredRTM Token 即将过期。
TokenDidExpiredRTM Token 已经过期。

示例

import ArRTM from "ar-rtm-sdk";

/**
 * 创建 RTM 客户端实例
 * @params appId: 指定频道的 ID。(类型:string)
 */
const client = ArRTM.createInstance(appId, { enableLogUpload: false });

/**
 * 用户登录 anyRTC RTM 系统
 */
client.login({ uid: "userID" })
    .then(() => { })
    .catch((err) => { });

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("ConnectionStateChanged", (newState, reason) => {
    console.log(newState, reason);
});
// 监听点对点消息。
client.on("MessageFromPeer", (message, peerId, messageProps) => {
    console.log(message, peerId, messageProps);
});

RtmClient 回调事件

RtmClient 实例上的事件类型。

ConnectionStateChanged

ConnectionStateChanged: (newState: RtmStatusCode.ConnectionState, reason: RtmStatusCode.ConnectionChangeReason) => void

SDK 与 RTM 系统的连接状态改变回调。

回调参数

参数类型描述
newStateRtmStatusCode.ConnectionState当前的连接状态。
reasonRtmStatusCode.ConnectionChangeReason状态改变的原因。

示例

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("ConnectionStateChanged", (newState, reason) => {
    console.log(newState, reason);
});

MessageFromPeer

MessageFromPeer: (message: RtmMessage, peerId: string, messageProps: ReceiveMessageProperties) => void

收到来自对端的点对点消息。

回调参数

参数类型描述
messageRtmMessage远端用户发送的消息。
peerIdstring发送该消息的远端用户 uid。
messagePropsReceivedMessageProperties当前消息的属性。

示例

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("MessageFromPeer", (message, peerId, messageProps) => {
    console.log("MessageFromPeer", message, peerId, messageProps);
});

RemoteInvitationReceived

RemoteInvitationReceived: (remoteInvitation: RemoteInvitation) => void

收到(来自主叫的)呼叫邀请。

回调参数

参数类型描述
remoteInvitationRemoteInvitation一个 RemoteInvitation对象。

示例

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("RemoteInvitationReceived", (remoteInvitation) => {
    console.log("RemoteInvitationReceived", remoteInvitation);
});

PeersOnlineStatusChanged

PeersOnlineStatusChanged: (peerOnlineStatus: PeersOnlineStatusMap) => void

订阅用户在线状态改变回调。

回调参数

参数类型描述
peerOnlineStatusPeersOnlineStatusMap一个 PeersOnlineStatusMap 对象。

示例

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("PeersOnlineStatusChanged", (peerOnlineStatus) => {
    console.log("PeersOnlineStatusChanged", peerOnlineStatus);
});

注意事项

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

TokenWillExpired

TokenWillExpired: () => void

当前使用的 RTM Token 即将过期。

示例

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("TokenWillExpired", () => {
    console.log("TokenWillExpired");
});

注意事项

  • 收到该回调时,请尽快在你的业务服务端生成新的 Token 并调用 renewToken 方法把新的 Token 传给 SDK

TokenDidExpired

TokenDidExpired: () => void

当前使用的 RTM Token 已经过期。

示例

// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("TokenDidExpired", () => {
    console.log("TokenDidExpired");
});

注意事项

  • 收到该回调时,已经与服务器断开链接,需要重新开始连接服务。