@@ -25,6 +25,16 @@ - (void)setEventSink:(FlutterEventSink)eventSink
25
25
objc_setAssociatedObject (self, @selector (eventSink ), eventSink, OBJC_ASSOCIATION_RETAIN_NONATOMIC );
26
26
}
27
27
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
+
28
38
- (FlutterEventChannel *)eventChannel
29
39
{
30
40
return objc_getAssociatedObject (self, _cmd);
@@ -59,10 +69,11 @@ -(void)createDataChannel:(nonnull NSString *)peerConnectionId
59
69
RTCPeerConnection *peerConnection = self.peerConnections [peerConnectionId];
60
70
RTCDataChannel *dataChannel = [peerConnection dataChannelForLabel: label configuration: config];
61
71
62
- if (nil != dataChannel && - 1 != dataChannel. channelId ) {
72
+ if (nil != dataChannel) {
63
73
dataChannel.peerConnectionId = peerConnectionId;
64
- NSNumber *dataChannelId = [NSNumber numberWithInteger: dataChannel .channelId];
74
+ NSNumber *dataChannelId = [NSNumber numberWithInteger: config .channelId];
65
75
peerConnection.dataChannels [dataChannelId] = dataChannel;
76
+ dataChannel.flutterChannelId = dataChannelId;
66
77
dataChannel.delegate = self;
67
78
68
79
FlutterEventChannel *eventChannel = [FlutterEventChannel
@@ -145,7 +156,7 @@ - (void)dataChannel:(RTCDataChannel *)channel didReceiveMessageWithBuffer:(RTCDa
145
156
FlutterEventSink eventSink = channel.eventSink ;
146
157
if (eventSink) {
147
158
eventSink (@{ @" event" : @" dataChannelReceiveMessage" ,
148
- @" id" : @(channel.channelId ),
159
+ @" id" : @(channel.flutterChannelId ),
149
160
@" type" : type,
150
161
@" data" : (data ? data : [NSNull null ])});
151
162
}
0 commit comments