RtmChannel 类

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

RTM 频道类。

你可以调用 createChannel 方法创建 RTM 频道实例,实例可以加入频道、退出频道、发送频道消息等。

实例

import ArRTM from "ar-rtm-sdk";
/**
 * 创建 RTM 客户端实例
 * @params appId: 项目的 App ID。必须是 ASCII 编码,长度为 32 个字符。(类型:string)
 */
const client = ArRTM.createInstance(appId);
/**
 * 创建 RTM 频道实例
 * @params channelId: 频道 ID。必须是 ASCII 编码,长度为 32 个字符。(类型:string)
 */
const rtmChannel = client.createChannel(channelId);

属性

属性描述
channelId频道实例的 ID。

方法

getMembers

getMembers(): Promise<string[]>

获取频道用户列表。

示例

/**
 * 获取频道用户列表
 * @params res: 返回的值为该频道所有用户 ID 的数组
 */
rtmChannel.getMembers()
    .then((members) => { })
    .catch((err) => { });

返回

Promise<string[]>

join

join(): Promise<void>

调用该方法加入该频道,加入频道成功后可收到该频道消息和频道用户进退通知。

  • 你最多可以加入 20 个频道。

示例

/**
 * 加入该频道
 */
RtmChannel.join()
    .then((res) => { })
    .catch((err) => { });

返回

Promise<void>

leave

leave(): Promise<void>

调用该方法离开该频道,不再接收频道消息和频道用户进退通知。

示例

/**
 * 离开该频道
 */
RtmChannel.leave()
    .then((res) => { })
    .catch((err) => { });

返回

Promise<void>

on

on(event: string, callback: (...args: any[]) => void): void;

在该频道实例上添加 listener 函数到名为 eventName 的事件。其他 RtmChannel 实例上的事件方法请参考 EventEmitter API 文档。

参数

参数类型描述
eventNamekeyof RtmChannelEvents频道事件的名称。
listenerfunction事件的回调函数。RtmChannelEvents[eventName]

示例

/**
 * 通过绑定 RtmChannel 实例提供的事件回调进行相关操作监听
 * @params eventName: RtmChannel 实例提供的事件的名称。(类型:string)
 * @params ...args: 不同的事件,回调参数是不同的。(类型:any[])
 */
rtmChannel.on("ChannelMessage", (message, peerId, messagePros) => {

});

返回

void

sendMessage

sendMessage(message: RtmMessage, messageOptions?: SendMessageOptions): Promise<void>

发送频道消息,所有加入频道的用户都会收到该频道消息。

注意事项

  • 发送消息(包括点对点消息和频道消息)的频率上限为 60 qps。

参数

参数类型描述
messageRtmMessage要发送的消息对象。可以选择使用 RtmTextMessage
messageOptionsSendMessageOption开启离线消息。

示例

/**
 * 发送频道消息,所有加入频道的用户都会收到该频道消息。
 * @params message: 要发送的文字消息 (类型:object)
 * @params messageOptions: 开启离线消息 (类型:object)
 */
rtmChannel.sendMessage(
  { text: "要发送的文字消息" },
  { enableHistoricalMessaging: true }  
).then(() => {
  // 你的代码:频道消息发送成功处理逻辑。
}).catch((err) => {
  // 你的代码:点对点消息发送失败。 
});

返回

Promise<void>