它"似乎"使用数据通道非常简单...我已经有很多同行正确分享音频和视频(在冰候选人交换阶段之后)。
在一个对等体上,我执行以下行:
RTCDataChannelConfiguration *config = [[RTCDataChannelConfiguration alloc] init];
config.channelId = 1000;
RTCDataChannel *dataChannel = [self.remotePeerConnection dataChannelForLabel:@"testDataChannel" configuration:config];
[dataChannel setDelegate:self];
在相同的同行设备上,当状态变为RTCDataChannelStateOpen
时,我希望通知刚设置的委托。
在另一台设备上,我希望收到RTCPeerConnectionDelegate
的通知,特别是方法
- peerConnection:(RTCPeerConnection *)peerConnection
didOpenDataChannel:(RTCDataChannel *)dataChannel
所有这一切都没有发生......在第一台设备上,dataChannel的状态仍然在RTCDataChannelStateConnecting
。如果我尝试使用相同的标识符创建另一个数据通道,则应用程序崩溃;所以我认为它确实创建了数据通道,但由于未知原因它无法成功打开它。有人可以解释这个过程中出了什么问题吗?