@@ -8,16 +8,18 @@ import 'package:dart_webrtc/dart_webrtc.dart';
88import 'package:js/js_util.dart' ;
99import 'package:platform_detect/platform_detect.dart' ;
1010import 'package:web/web.dart' as web;
11- import 'package:webrtc_interface/webrtc_interface.dart' ;
1211
13- import 'media_stream_impl.dart' ;
1412import 'media_stream_track_impl.dart' ;
1513import 'rtc_data_channel_impl.dart' ;
1614import 'rtc_dtmf_sender_impl.dart' ;
1715import 'rtc_rtp_receiver_impl.dart' ;
1816import 'rtc_rtp_sender_impl.dart' ;
1917import 'rtc_rtp_transceiver_impl.dart' ;
2018
19+ extension on web.RTCDataChannelInit {
20+ external set binaryType (String value);
21+ }
22+
2123/*
2224 * PeerConnection
2325 */
@@ -395,21 +397,29 @@ class RTCPeerConnectionWeb extends RTCPeerConnection {
395397 @override
396398 Future <RTCDataChannel > createDataChannel (
397399 String label, RTCDataChannelInit dataChannelDict) {
398- final map = dataChannelDict.toMap ();
400+ var dcInit = web.RTCDataChannelInit (
401+ id: dataChannelDict.id,
402+ ordered: dataChannelDict.ordered,
403+ protocol: dataChannelDict.protocol,
404+ negotiated: dataChannelDict.negotiated,
405+ );
406+
399407 if (dataChannelDict.binaryType == 'binary' ) {
400- map['binaryType' ] = 'arraybuffer' ; // Avoid Blob in data channel
408+ dcInit.binaryType = 'arraybuffer' ; // Avoid Blob in data channel
409+ }
410+
411+ if (dataChannelDict.maxRetransmits > 0 ) {
412+ dcInit.maxRetransmits = dataChannelDict.maxRetransmits;
413+ }
414+
415+ if (dataChannelDict.maxRetransmitTime > 0 ) {
416+ dcInit.maxPacketLifeTime = dataChannelDict.maxRetransmitTime;
401417 }
402418
403419 final jsDc = _jsPc.createDataChannel (
404- label,
405- web.RTCDataChannelInit (
406- id: map['id' ],
407- ordered: map['ordered' ],
408- maxPacketLifeTime: map['maxPacketLifeTime' ],
409- maxRetransmits: map['maxRetransmits' ],
410- protocol: map['protocol' ],
411- negotiated: map['negotiated' ],
412- ));
420+ label,
421+ dcInit,
422+ );
413423
414424 return Future .value (RTCDataChannelWeb (jsDc));
415425 }
0 commit comments