iOS WebRTC dataChannel 資料傳送注意事項
阿新 • • 發佈:2019-09-04
1. 通道建立
1. 通道的時候,按照一般順序,先建立工廠 _factory = [[RTCPeerConnectionFactory alloc] init]; 2.獲取ICESevers 3.建立連線物件 RTCPeerConnection *connection = [_factory peerConnectionWithConfiguration:configuration constraints:[self creatPeerConnectionConstraint] delegate:self]; 4.建立datachannel RTCDataChannel *channel = [connection dataChannelForLabel:@"sendDataChannel" configuration:dataChannelConfiguration]; channel.delegate = self;
需要注意的是,建立offer 必須在建立datachannel 之後,因為offer之中包含了一些配置資訊,而且兩端的一些其他引數要配置一直,不然的話,有可能會通道建立不起來,或者建立起來了,但是資料傳送不了。
2. 資料傳送
dataChannel 轉發的時候,有個緩衝區,這個緩衝區大概是15MB, 也就是你往這個通道你們發資料,緩衝區大小超過這個資料的話,WebRTCDataChannel會自動關閉通道,導致資料傳送不成功。
3.資料傳送控制方案
dataChannel 資料傳送要設計一些擁塞策略。
4. 資料格式
dataChannel傳送的是資料流,一般我們會將本地字典轉成通用JSON格式,需要注意的時候,在字典裡面加入資料流的時候,一定要轉Base64,要不然轉J