DingRTC RTM接口

通过阅读本文,您可以了解到DingRTC Web RTM SDK接口详情。

数据类型

类型

描述

支持的最低版本

RTMSession

rtm 会话信息结构体

1.0.0

RTMSessionUser

rtm 会话的用户信息

1.0.0

RTMMessage

远端发布消息结构体

1.0.0

属性列表

属性

类型

描述

支持的最低版本

sessions

RTMSession[]

rtm 实例上当前存在的会话列表

1.0.0

connectionState

string

sdk 实例与服务链接状态。

1.0.0

接口列表

接口

描述

支持的最低版本

join()

加入频道,独立使用rtm时使用

1.0.0

leave()

离开频道,独立使用rtm时使用

1.0.0

joinSession()

加入rtm session会话

1.0.0

leaveSession()

离开rtm session会话

1.0.0

closeSession()

关闭rtm session会话

1.0.0

publish()

在指定 session 发布广播或点对点消息

1.0.0

off()

取消一个指定事件的监听回调函数

1.0.0

on()

监听一个指定事件并设置回调函数

1.0.0

once()

监听一个指定事件一次,回调函数触发后移除

1.0.0

removeAllListeners()

取消该对象指定事件或所有事件上的监听回调

1.0.0

事件列表

DingRTC 全局事件

事件

回调类型

描述

支持的最低版本

"session-add"

(session: RTMSession) => void;

频道内创建了一个新的rtm会话

1.0.1

"session-remove"

(session: RTMSession) => void;

频道内关闭了一个新的rtm会话

1.0.1

"session-user-join"

(sessionId: string, userId: string) => void;

rtm会话用户加入通知

1.0.2

"session-user-left"

(sessionId: string, userId: string) => void;

rtm会话用户离开通知

1.0.2

"message"

(messgae: RTMMessage) => void;

远端消息发布通知

"connection-state-change"

(curState:ConnectionState, revState:ConnectionState, reason?:DisconnectedReason) => void

SDK 与服务器的连接状态发生改变时的回调。

1.0.1

数据类型

RTMSession

rtm session 信息结构

属性

类型

描述

版本

joined

boolean

当前用户是否已加入该会话

1.0.0

users

RTMSessionUser[]

当前在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

JoinParam

加入频道所需参数

返回

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);
});