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 文档。
参数
参数 | 类型 | 描述 |
---|---|---|
eventName | keyof RtmChannelEvents | 频道事件的名称。 |
listener | function | 事件的回调函数。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。
参数
参数 | 类型 | 描述 |
---|---|---|
message | RtmMessage | 要发送的消息对象。可以选择使用 RtmTextMessage。 |
messageOptions | SendMessageOption | 开启离线消息。 |
示例
/**
* 发送频道消息,所有加入频道的用户都会收到该频道消息。
* @params message: 要发送的文字消息 (类型:object)
* @params messageOptions: 开启离线消息 (类型:object)
*/
rtmChannel.sendMessage(
{ text: "要发送的文字消息" },
{ enableHistoricalMessaging: true }
).then(() => {
// 你的代码:频道消息发送成功处理逻辑。
}).catch((err) => {
// 你的代码:点对点消息发送失败。
});
返回
Promise<void>