使用数据通道“似乎”非常简单......我已经有很多同行可以正确共享音频和视频(在冰候选人交换阶段之后)。
在一个同行上,我执行以下几行:
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 的状态保持在 on RTCDataChannelStateConnecting
。如果我尝试使用相同的标识符创建另一个数据通道,则应用程序崩溃;所以我认为它确实创建了数据通道,但由于未知原因它没有成功打开它。有人可以解释这个过程中有什么问题吗?