Appearance
数据通道
数据通道相关的 API,用于在用户之间传输自定义数据。
sendDataChannelMessage
通过数据通道发送消息。
方法签名
typescript
sendDataChannelMessage(dataChannelMsg: AliRtcDataChannelMsg): void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| dataChannelMsg | AliRtcDataChannelMsg | 数据通道消息对象 |
消息对象说明
typescript
interface AliRtcDataChannelMsg {
// 消息类型
type: AliRtcDataMsgType;
// 消息内容(字符串或 ArrayBuffer)
data: string | ArrayBuffer;
}
enum AliRtcDataMsgType {
// 文本消息
Text = 0,
// 二进制消息
Binary = 1,
}说明
- 需要在成功加入频道后调用
- 消息会发送给频道内所有订阅了数据通道的用户
- 单条消息最大支持 64KB
使用示例
javascript
// 发送文本消息
engine.sendDataChannelMessage({
type: AliRtcEngine.AliRtcDataMsgType.Text,
data: 'Hello, everyone!',
});
// 发送二进制消息
const binaryData = new ArrayBuffer(100);
engine.sendDataChannelMessage({
type: AliRtcEngine.AliRtcDataMsgType.Binary,
data: binaryData,
});sendMediaExtensionMsg
发送媒体扩展消息。
方法签名
typescript
sendMediaExtensionMsg(data: ArrayBuffer, repeatCount?: number): Promise<void>参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| data | ArrayBuffer | 消息内容(二进制数据) |
| repeatCount | number | (可选) 重复发送次数,默认 1 次 |
说明
- 通过 RTP 扩展头发送数据
- 消息会随媒体流一起传输
- 单条消息最大 16 字节
- 适合发送时间敏感的小数据
使用示例
javascript
// 创建要发送的数据
const data = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
// 发送媒体扩展消息
await engine.sendMediaExtensionMsg(data.buffer);
// 发送并重复 3 次
await engine.sendMediaExtensionMsg(data.buffer, 3);