产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
iOS | Android | Mac OS | Windows | Electron | Flutter | |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

sendCustomCmdMsg 接口发送的,发送时需要指定四个参数:参数名 | 参数说明 |
cmdID | 消息ID,取值范围为 1 ~ 10,不同业务类型的消息应当使用不同的 cmdID。 |
data | 待发送的消息,最大支持 1KB(1000字节)的数据大小。 |
reliable | 是否可靠发送,可靠发送的代价是会引入一定的延时,因为接收端要暂存一段时间的数据来等待重传。 |
ordered | 是否要求有序,即是否要求接收端接收的数据顺序和发送端发送的顺序一致,这会带来一定的接收延时,因为在接收端需要暂存并排序这些消息。 |
//发送自定义消息的示例代码- (void)sendHello {// 自定义消息命令字, 这里需要根据业务定制一套规则,这里以0x1代表发送文字广播消息为例NSInteger cmdID = 0x1;NSData *data = [@"Hello" dataUsingEncoding:NSUTF8StringEncoding];// reliable 和 ordered 目前需要一致,这里以需要保证消息按发送顺序到达为例[trtcCloud sendCustomCmdMsg:cmdID data:data reliable:YES ordered:YES];}
//发送自定义消息的示例代码public void sendHello() {try {// 自定义消息命令字, 这里需要根据业务定制一套规则,这里以0x1代表发送文字广播消息为例int cmdID = 0x1;String hello = "Hello";byte[] data = hello.getBytes("UTF-8");// reliable 和 ordered 目前需要一致,这里以需要保证消息按发送顺序到达为例trtcCloud.sendCustomCmdMsg(cmdID, data, true, true);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}
// 发送自定义消息的示例代码void sendHello(){// 自定义消息命令字, 这里需要根据业务定制一套规则,这里以0x1代表发送文字广播消息为例uint32_t cmdID = 0x1;uint8_t* data = { '1', '2', '3' };uint32_t dataSize = 3; // data的长度// reliable 和 ordered 目前需要一致,这里以需要保证消息按发送顺序到达为例trtcCloud->sendCustomCmdMsg(cmdID, data, dataSize, true, true);}
// 发送自定义消息的示例代码private void sendHello(){// 自定义消息命令字, 这里需要根据业务定制一套规则,这里以0x1代表发送文字广播消息为例uint cmdID = 0x1;byte[] data = { '1', '2', '3' };uint dataSize = 3; // data的长度// reliable 和 ordered 目前需要一致,这里以需要保证消息按发送顺序到达为例mTRTCCloud.sendCustomCmdMsg(cmdID, data, dataSize, true, true);}
try {int cmdId = 0x1;String hello = "hello";_trtcCloud.sendCustomCmdMsg(cmdId, hello, true, true);} catch (e) {print(e);}
const trtc = TRTC.create();await trtc.enterRoom({ sdkAppId, userId, userSig, roomId: 12345 })// send custom messageconst data = new TextEncoder().encode('hello').buffer;trtc.sendCustomMessage({ cmdId: 1, data });
sendCustomCmdMsg 发出自定义消息后,房间中其他的用户可以通过 SDK 回调中的 onRecvCustomCmdMsg 接口来接收这些消息。//接收和处理房间内其他人发送的消息- (void)onRecvCustomCmdMsgUserId:(NSString *)userId cmdID:(NSInteger)cmdId seq:(UInt32)seq message:(NSData *)message{// 接收到 userId 发送的消息switch (cmdId) // 发送方和接收方协商好的cmdId{case 0:// 处理cmdId = 0消息break;case 1:// 处理cmdId = 1消息break;case 2:// 处理cmdId = 2消息break;default:break;}}
//继承 TRTCCloudListener,实现 onRecvCustomCmdMsg 方法接收和处理房间内其他人发送的消息public void onRecvCustomCmdMsg(String userId, int cmdId, int seq, byte[] message) {// 接收到 userId 发送的消息switch (cmdId) // 发送方和接收方协商好的cmdId{case 0:// 处理cmdId = 0消息break;case 1:// 处理cmdId = 1消息break;case 2:// 处理cmdId = 2消息break;default:break;}
// 接收和处理房间内其他人发送的消息void TRTCCloudCallbackImpl::onRecvCustomCmdMsg(const char* userId, int32_t cmdId, uint32_t seq, const uint8_t* msg, uint32_t msgSize){// 接收到 userId 发送的消息switch (cmdId) // 发送方和接收方协商好的cmdId{case 0:// 处理cmdId = 0消息break;case 1:// 处理cmdId = 1消息break;case 2:// 处理cmdId = 2消息break;default:break;}}
// 接收和处理房间内其他人发送的消息public void onRecvCustomCmdMsg(string userId, int cmdId, uint seq, byte[] msg, uint msgSize){// 接收到 userId 发送的消息switch (cmdId) // 发送方和接收方协商好的cmdId{case 0:// 处理cmdId = 0消息break;case 1:// 处理cmdId = 1消息break;case 2:// 处理cmdId = 2消息break;default:break;}}
TRTCCloudListener(onRecvCustomCmdMsg: (userId, cmdId, seq, message) {// TODO},onMissCustomCmdMsg: (userId, cmdId, errCode, missed) {// TODO});
// receive custom messagetrtc.on(TRTC.EVENT.CUSTOM_MESSAGE, event => {// event.userId: remote userId.// event.cmdId: message cmdId.// event.seq: message sequence number.// event.data: custom message data, type is ArrayBuffer.console.log(`received custom msg from ${event.userId}, message: ${new TextDecoder().decode(event.data)}`)})
文档反馈