8000 Merge pull request #90 from cloudwebrtc/rostopira-datachannel-patch · selinplus/flutter-webrtc@6b2b3b9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6b2b3b9

Browse files
authored
Merge pull request flutter-webrtc#90 from cloudwebrtc/rostopira-datachannel-patch
Workaround for WebRTC issue 10588
2 parents 6672e47 + eaca7a8 commit 6b2b3b9

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

ios/Classes/FlutterRTCDataChannel.m

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,16 @@ - (void)setEventSink:(FlutterEventSink)eventSink
2525
objc_setAssociatedObject(self, @selector(eventSink), eventSink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
2626
}
2727

28+
- (NSNumber *)flutterChannelId
29+
{
30+
return objc_getAssociatedObject(self, _cmd);
31+
}
32+
33+
- (void)setFlutterChannelId:(NSNumber *)flutterChannelId
34+
{
35+
objc_setAssociatedObject(self, @selector(flutterChannelId), flutterChannelId, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
36+
}
37+
2838
- (FlutterEventChannel *)eventChannel
2939
{
3040
return objc_getAssociatedObject(self, _cmd);
@@ -59,10 +69,11 @@ -(void)createDataChannel:(nonnull NSString *)peerConnectionId
5969
RTCPeerConnection *peerConnection = self.peerConnections[peerConnectionId];
6070
RTCDataChannel *dataChannel = [peerConnection dataChannelForLabel:label configuration:config];
6171

62-
if (nil != dataChannel && -1 != dataChannel.channelId) {
72+
if (nil != dataChannel) {
6373
dataChannel.peerConnectionId = peerConnectionId;
64-
NSNumber *dataChannelId = [NSNumber numberWithInteger:dataChannel.channelId];
74+
NSNumber *dataChannelId = [NSNumber numberWithInteger:config.channelId];
6575
peerConnection.dataChannels[dataChannelId] = dataChannel;
76+
dataChannel.flutterChannelId = dataChannelId;
6677
dataChannel.delegate = self;
6778

6879
FlutterEventChannel *eventChannel = [FlutterEventChannel
@@ -145,7 +156,7 @@ - (void)dataChannel:(RTCDataChannel *)channel didReceiveMessageWithBuffer:(RTCDa
145156
FlutterEventSink eventSink = channel.eventSink;
146157
if(eventSink) {
147158
eventSink(@{ @"event" : @"dataChannelReceiveMessage",
148-
@"id": @(channel.channelId),
159+
@"id": @(channel.flutterChannelId),
149160
@"type": type,
150161
@"data": (data ? data : [NSNull null])});
151162
}

ios/flutter_webrtc.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ A new flutter plugin project.
1616
s.public_header_files = 'Classes/**/*.h'
1717
s.dependency 'Flutter'
1818
s.dependency 'libyuv-iOS'
19-
s.dependency 'GoogleWebRTC', '1.1.27299' # DON'T UPDATE UNTIL FIXED: https://bugs.chromium.org/p/webrtc/issues/detail?id=10588
19+
s.dependency 'GoogleWebRTC', '1.1.27299'
2020
s.ios.deployment_target = '9.0'
2121
s.static_framework = true
2222
end

0 commit comments

Comments
 (0)
0