本页主要介绍 RtmClient
相关的回调事件。所有回调都是在 RtmClient
概览
事件名 | 描述 |
---|---|
ConnectionStateChanged | SDK 与 RTM 系统的连接状态改变回调 |
MessageFromPeer | 收到来自对端的点对点消息。 |
RemoteInvitationReceived | 收到(来自主叫的)呼叫邀请。 |
PeersOnlineStatusChanged | 订阅用户在线状态改变回调。 |
TokenWillExpired | RTM Token 即将过期。 |
TokenDidExpired | RTM 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 系统的连接状态改变回调。
回调参数
参数 | 类型 | 描述 |
---|---|---|
newState | RtmStatusCode.ConnectionState | 当前的连接状态。 |
reason | RtmStatusCode.ConnectionChangeReason | 状态改变的原因。 |
示例
// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("ConnectionStateChanged", (newState, reason) => {
console.log(newState, reason);
});
MessageFromPeer
MessageFromPeer: (message: RtmMessage, peerId: string, messageProps: ReceiveMessageProperties) => void
收到来自对端的点对点消息。
回调参数
参数 | 类型 | 描述 |
---|---|---|
message | RtmMessage | 远端用户发送的消息。 |
peerId | string | 发送该消息的远端用户 uid。 |
messageProps | ReceivedMessageProperties | 当前消息的属性。 |
示例
// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("MessageFromPeer", (message, peerId, messageProps) => {
console.log("MessageFromPeer", message, peerId, messageProps);
});
RemoteInvitationReceived
RemoteInvitationReceived: (remoteInvitation: RemoteInvitation) => void
收到(来自主叫的)呼叫邀请。
回调参数
参数 | 类型 | 描述 |
---|---|---|
remoteInvitation | RemoteInvitation | 一个 RemoteInvitation对象。 |
示例
// 监听 SDK 与 anyRTC RTM 系统的连接状态
client.on("RemoteInvitationReceived", (remoteInvitation) => {
console.log("RemoteInvitationReceived", remoteInvitation);
});
PeersOnlineStatusChanged
PeersOnlineStatusChanged: (peerOnlineStatus: PeersOnlineStatusMap) => void
订阅用户在线状态改变回调。
回调参数
参数 | 类型 | 描述 |
---|---|---|
peerOnlineStatus | PeersOnlineStatusMap | 一个 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");
});
注意事项
- 收到该回调时,已经与服务器断开链接,需要重新开始连接服务。