BRTC SDK 提供了发送自定义消息的功能,通过该功能,角色为主播的用户都可以向同一个视频房间里的其他用户广播自己的定制消息。
某一个用户的自定义消息会被夹在音视频数据流中,随着音视频数据一起传输给房间里的其他用户。由于音视频线路本身并不是100%可靠的,为了提高可靠性,BRTC SDK 内部本身实现了一些可靠性保护机制。
通过调用 BRTC 的 sendCustomCmdMsg 接口发送的,发送时需要指定四个参数:
//发送自定义消息的示例代码 - (void)sendBRTC { // 自定义消息命令字, 这里需要根据业务定制一套规则,这里以0x1代表发送文字广播消息为例 NSInteger cmdID = 0x1; NSData *data = [@"brtc" dataUsingEncoding:NSUTF8StringEncoding]; // reliable 和 ordered 目前需要一致,这里以需要保证消息按发送顺序到达为例 [brtc sendCustomCmdMsg:cmdID data:data reliable:YES ordered:YES]; }
当房间中的一个用户通过 sendCustomCmdMsg 发出自定义消息后,房间中其他的用户可以通过 SDK 回调中的 onRecvCustomCmdMsg 接口来接收这些消息。
//继承 BRTCDelegate,实现 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; } }
由于自定义消息享受比音视频数据更高的传输优先级,如果自定义数据发送过多,音视频数据可能会被干扰到,从而导致画面卡顿或者模糊。所以,我们针对自定义消息的发送进行了如下的频率限制:
发送自定义消息
BRTC SDK 提供了发送自定义消息的功能,通过该功能,角色为主播的用户都可以向同一个视频房间里的其他用户广播自己的定制消息。
发送接收原理
某一个用户的自定义消息会被夹在音视频数据流中,随着音视频数据一起传输给房间里的其他用户。由于音视频线路本身并不是100%可靠的,为了提高可靠性,BRTC SDK 内部本身实现了一些可靠性保护机制。
消息发送
通过调用 BRTC 的 sendCustomCmdMsg 接口发送的,发送时需要指定四个参数:
消息接收
当房间中的一个用户通过 sendCustomCmdMsg 发出自定义消息后,房间中其他的用户可以通过 SDK 回调中的 onRecvCustomCmdMsg 接口来接收这些消息。
使用限制
由于自定义消息享受比音视频数据更高的传输优先级,如果自定义数据发送过多,音视频数据可能会被干扰到,从而导致画面卡顿或者模糊。所以,我们针对自定义消息的发送进行了如下的频率限制: