通过阅读本文,您可以了解到DingRTC Web RTM SDK接口详情。
数据类型
类型 | 描述 | 支持的最低版本 |
rtm 会话信息结构体 | 1.0.0 | |
rtm 会话的用户信息 | 1.0.0 | |
远端发布消息结构体 | 1.0.0 |
属性列表
属性 | 类型 | 描述 | 支持的最低版本 |
sessions | rtm 实例上当前存在的会话列表 | 1.0.0 | |
connectionState | string | sdk 实例与服务链接状态。 | 1.0.0 |
接口列表
接口 | 描述 | 支持的最低版本 |
加入频道,独立使用rtm时使用 | 1.0.0 | |
离开频道,独立使用rtm时使用 | 1.0.0 | |
加入rtm session会话 | 1.0.0 | |
离开rtm session会话 | 1.0.0 | |
关闭rtm session会话 | 1.0.0 | |
在指定 session 发布广播或点对点消息 | 1.0.0 | |
取消一个指定事件的监听回调函数 | 1.0.0 | |
监听一个指定事件并设置回调函数 | 1.0.0 | |
监听一个指定事件一次,回调函数触发后移除 | 1.0.0 | |
取消该对象指定事件或所有事件上的监听回调 | 1.0.0 |
事件列表
DingRTC 全局事件
事件 | 回调类型 | 描述 | 支持的最低版本 |
(session: RTMSession) => void; | 频道内创建了一个新的rtm会话 | 1.0.1 | |
(session: RTMSession) => void; | 频道内关闭了一个新的rtm会话 | 1.0.1 | |
(sessionId: string, userId: string) => void; | rtm会话用户加入通知 | 1.0.2 | |
(sessionId: string, userId: string) => void; | rtm会话用户离开通知 | 1.0.2 | |
(messgae: RTMMessage) => void; | 远端消息发布通知 | ||
(curState:ConnectionState, revState:ConnectionState, reason?:DisconnectedReason) => void | SDK 与服务器的连接状态发生改变时的回调。 | 1.0.1 |
数据类型
RTMSession
rtm session 信息结构
属性 | 类型 | 描述 | 版本 |
joined | boolean | 当前用户是否已加入该会话 | 1.0.0 |
users | 当前在rtm会话中的用户列表 | 1.0.0 | |
id | string | rtm会话Id | 1.0.0 |
RTMSessionUser
rtm session 用户信息结构
属性 | 类型 | 描述 | 版本 |
userId | string | rtm 会话 用户Id | 1.0.0 |
userNmae | string | rtm 会话 用户名称 | 1.0.0 |
RTMMessage
远端用户消息发布信息结构
属性 | 类型 | 描述 | 版本 |
message | Uint8Array | 消息载体 | 1.0.0 |
uid | string | 发布人的uid | 1.0.0 |
sessionId | string | 消息归属的sessionId | 1.0.0 |
broadcast | boolean | 消息是广播还是点对点发布 | 1.0.0 |
接口详情
join()
加入频道,在同一个频道内的用户可以互相通信。独立使用rtm时使用,若配合dingrtc一起使用时无需调用。
类型签名
join(joinInfo: JoinParam): Promise<void>;
入参:
参数 | 类型 | 描述 |
joinInfo | 加入频道所需参数 |
返回
Promise<void>
leave()
离开频道,独立使用rtm时使用,若配合dingrtc一起使用时无需调用。
类型签名
leave(): void;
返回
void
joinSession()
加入Session(如果Session有其他成员)或者是中途有其他成员加入Session,都会收到session-user-join事件通知。
类型签名
joinSession(sessionId: string): Promise<void>;
入参:
参数 | 类型 | 描述 |
sessionId | string | rtm会话Id,支持大小写字母、数字与下划线,长度不超过64字符 |
返回
Promise<void>
leaveSession()
离开rtm session,之将收不到该session里其他成员发送的广播消息,该session里其他成员也无法给您发送点对点消息。
类型签名
leaveSession(sessionId: string): Promise<void>;
入参:
参数 | 类型 | 描述 |
sessionId | string | rtm会话Id |
返回
Promise<void>
closeSession()
关闭Session后,Session的所有成员(包括自己)都会收到session-remove事件通知,该Session不再可用。
类型签名
closeSession(sessionId: string): Promise<void>;
入参:
参数 | 类型 | 描述 |
sessionId | string | rtm会话Id |
返回
Promise<void>
publish()
发布消息,支持指定频道内广播或点对点发布消息。
类型签名
publish(sessionId: string, message: Uint8Array, targetUid?: string): void;
入参:
参数 | 类型 | 描述 |
sessionId | string | rtm会话Id |
message | Uint8Arrary | 发布消息的二进制格式 |
targetUid | string | 可选,当指定时为发布点对点消息,要求与发布人在同一个指定的sessionId。当未指定时代表在sessionId发布广播消息 |
返回
void
on()
监听一个指定事件并设置回调函数
类型签名
on(event: string, fn: Function): void;
参数
参数 | 类型 | 描述 |
event | string | 监听的指定事件 |
fn | Function | 监听事件触发时的回调函数 |
返回
void
off()
取消一个指定事件的监听回调函数
类型签名
off(event: string, fn: Function): void;
参数
参数 | 类型 | 描述 |
event | string | 监听的指定事件 |
fn | Function | 监听事件触发时的回调函数 |
返回
void
once()
监听一个指定事件一次,回调函数触发后移除
类型签名
once(event: string, fn: Function): void;
参数
参数 | 类型 | 描述 |
event | string | 监听的指定事件 |
fn | Function | 监听事件触发时的回调函数 |
返回
void
removeAllListeners()
取消该对象指定事件或所有事件上的监听回调
类型签名
removeAllListeners(event?: string): void;
参数
参数 | 类型 | 描述 |
event | string | (Optional)设置了指定事件时,对应监听回调函数将会清空。当参数未填写时,对象的所有事件的监听函数都将清空 |
返回
void
事件详情
"message"
收到远端发布消息
类型签名
'message': (message: RTMMessage) => void;
示例
rtm.on('message', (message) => {
console.log(message);
});
"session-add"
频道内创建了一个新的会话
类型签名
'session-add': (session: RTMSession) => void;
示例
rtm.on('session-add', (session) => {
console.log(session);
});
"session-remove"
频道内关闭了一个会话
类型签名
'session-remove': (session: RTMSession) => void;
示例
rtm.on('session-remove', (session) => {
console.log(session);
});
"session-user-join"
rtm会话用户加入通知
类型签名
'session-user-join': (sessionId: string, uid: string) => void;
示例
rtm.on('session-user-join', (sessionId, uid) => {
console.log(sessionId, uid);
});
"session-user-left"
rtm会话用户离开通知
类型签名
'session-user-left': (sessionId: string, uid: string) => void;
示例
rtm.on('session-user-left', (sessionId, uid) => {
console.log(sessionId, uid);
});
"connection-state-change"
SDK 与服务器的连接状态发生改变时的回调,建议独立使用rtm时使用,若配合dingrtc一起使用时无需额外监听。
类型签名
'connection-state-change': (curState: ConnectionState, prevState: ConnectionState, reason?: DisconnectedReason) => void;
示例
rtm.on('connection-state-change', (curState, prevState, reason) => {
console.log(curState, prevState, reason);
});