データチャネルを使用するのは非常に簡単だと思われます...私はすでにオーディオとビデオを正しく共有する多くのピアを持っています(アイス候補交換フェーズの後)。
1 つのピアで、次の行を実行します。
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
です。同じ識別子で別のデータ チャネルを作成しようとすると、アプリがクラッシュします。本当にデータチャネルを作成すると思いますが、不明な理由でそれを開くことができません。誰かがこのプロセスで何が悪いのか説明できますか?