2017-05-04 67 views
0

我設法在A和B之間共享視頻和音頻,並且我發現RTCDataChannelState已更改爲kRTCDataChannelStateOpen。在iOS上使用RTCDataChannel發送消息失敗

- (void)channelDidChangeState:(RTCDataChannel*)channel 

sendData也可以返回YES,但我不能接受

- (void)peerConnection:(RTCPeerConnection*)peerConnection 
    didOpenDataChannel:(RTCDataChannel*)dataChannel 

從未called.I想以後冰狀態轉變爲RTCICEConnectionConnected它應該被稱爲然而,它沒有消息和


創建datachannel:

RTCDataChannelInit *DataChannelInit = [[RTCDataChannelInit alloc] init]; 
    DataChannelInit.maxRetransmits = 0; 
    DataChannelInit.isOrdered=false; 
    DataChannelInit.maxRetransmitTimeMs = -1; 
    DataChannelInit.isNegotiated = false; 
    DataChannelInit.streamId = 25; 
    RTCDataChannel *dataChannel =[_peerConnection createDataChannelWithLabel:@"commands" config:DataChannelInit]; 
    dataChannel.delegate=self; 
    self.datachannel = dataChannel; 

我的報價和anwser:

- (RTCMediaConstraints *)defaultOfferConstraints { 
    NSArray *mandatoryConstraints = @[ 
     [[RTCPair alloc] initWithKey:@"OfferToReceiveAudio" value:@"true"], 
     [[RTCPair alloc] initWithKey:@"OfferToReceiveVideo" value:@"true"] 
    ]; 

    NSArray *optionalConstraints = @[ 
             [[RTCPair alloc] initWithKey:@"internalSctpDataChannels" value:@"true"], 
             [[RTCPair alloc] initWithKey:@"DtlsSrtpKeyAgreement" value:@"true"] 
             ]; 
    RTCMediaConstraints *constraints = 
     [[RTCMediaConstraints alloc] 
      initWithMandatoryConstraints:mandatoryConstraints 
        optionalConstraints:optionalConstraints]; 
    return constraints; 
} 

回答

0

如果附加的請求/應答SDP和框架的WebRTC版本會更容易找出問題。

以下代表應在接收方打電話給你設定的RemoteDescription後,如果添加的數據通道正確

-(void)peerConnection:(RTCPeerConnection *)peerConnection 
    didOpenDataChannel:(RTCDataChannel *)dataChannel { 
    NSLog(@"Received remote data channel %ld ", (long)dataChannel.readyState); 
    dc = dataChannel; 
    dc.delegate = self; 
} 

您應該創建創建數據通道後的報價,這樣的報價將攜帶數據通道詳細信息

由於數據通道是全雙工的,因此無需在接收端創建數據通道。

+0

我在創建數據通道後創建要約,但在設置RemoteDescription後沒有調用'didOpenDataChannel'。 – potato

+0

你可以提供帶有pastebin的報價嗎? – Ajay

+0

感謝您的幫助,這裏是我的[offer sdp](https://pastebin.com/embed_js/iY9h0SVS) – potato

相關問題