自定义信令通道

最近更新时间:2024-09-11 10:20:21

我的收藏

内容介绍

本文主要介绍如何使用自定义信令通道传输白板信令。

平台支持

iOS
Android
Windows
Mac OS
Web
小程序

同步原理




监听 onTEBSyncData 事件(事件名以各端实际为准),将事件中回调的数据通过信令通道进行广播。
收到白板信令后,调用互动白板 addSyncData 接口(接口名以各端实际为准)进行同步。

注意事项

使用自定义信令通道不支持实时录制,白板推流服务。
关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)。
互动白板信令通道默认使用腾讯云 即时通信 IM ,使用自定义信令通道则无需集成 IMSDK。

代码集成

Mac/iOS
// 1. 将 TEduBoardInitParam 的 timSync 参数初始为 NO
TEduBoardInitParam *initParam = [[TEduBoardInitParam alloc] init];
initParam.timSync = NO; // 关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)
_boardController = [[TEduBoardController alloc] initWithAuthParam:authParam roomId:_classId initParam:initParam];

// 2. 监听白板信令数据回调 onTEBSyncData,将数据发送给其他白板用户
- (void)onTEBSyncData:(NSString *)data {
//使用自定义信令通道,发送 data 给其他白板用户
//信令发送成功后调用 addAckData(data),确认数据发送状态
}

// 3. 在收到其他用户的白板信令时,将消息传递给白板.
[_boardController addSyncData:data];
Android
// 1. 将 TEduBoardInitParam 的 timSync 参数初始为 NO
TEduBoardController.TEduBoardInitParam initParam = new TEduBoardController.TEduBoardInitParam();
initParam.timSync = false; // 关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)

// 2. 监听白板信令回调 onTEBSyncData,将信令发送给其他白板用户
@Override
public void onTEBSyncData(String data) {
//使用自定义信令通道,发送 data 给其他白板用户
//信令发送成功后调用 addAckData(data),确认数据发送状态
}

// 3. 在收到其他用户的白板信令时,将信令透传给白板
mBoard.addSyncData(data);
Windows
// 1. 将 TEduBoardInitParam 的 timSync 参数初始为 NO
TEduBoardInitParam initParam;
initParam.timSync = false; // 关闭互动白板内置的信令通道(一定需要关闭,否则会收不到 onTEBSyncData 回调)
boardCtrl->Init(authParam, ROOM_ID, initParam); // 使用上面构造的初始化参数

// 2. 监听白板信令回调 onTEBSyncData,将信令发送给其他白板用户
virtual void onTEBSyncData(const char * data) override {
//使用自定义信令通道,发送 data 给其他白板用户
//信令发送成功后调用 addAckData(data),确认数据发送状态
}

// 3. 在收到其他用户的白板信令时,将信令透传给白板
boardCtrl->AddSyncData(data);
Web
// 1. 在 onTEBSyncData 回调里,将数据发送给其他白板用户
teduBoard.on(TEduBoard.EVENT.TEB_SYNCDATA, data => {
//使用自定义信令通道,发送 data 给其他白板用户
//信令发送成功后调用 addAckData(data),确认数据发送状态
});

// 2. 在收到其他用户的白板信令时,将信令透传给白板
teduBoard.addSyncData(data);