Pass around the candidate removals events in IOS clients
When local candidates are removed, signal to RTCPeerConnection and eventually send to the remote client. When a candidate-removal message is received, notify the native PeerConnection. BUG= R=tkchin@webrtc.org Review URL: https://codereview.webrtc.org/1972483002 . Cr-Commit-Position: refs/heads/master@{#12852}
This commit is contained in:
@ -16,7 +16,8 @@
|
||||
#import "RTCIceCandidate+JSON.h"
|
||||
#import "RTCSessionDescription+JSON.h"
|
||||
|
||||
static NSString const *kARDSignalingMessageTypeKey = @"type";
|
||||
static NSString * const kARDSignalingMessageTypeKey = @"type";
|
||||
static NSString * const kARDTypeValueRemoveCandidates = @"remove-candidates";
|
||||
|
||||
@implementation ARDSignalingMessage
|
||||
|
||||
@ -47,6 +48,12 @@ static NSString const *kARDSignalingMessageTypeKey = @"type";
|
||||
RTCIceCandidate *candidate =
|
||||
[RTCIceCandidate candidateFromJSONDictionary:values];
|
||||
message = [[ARDICECandidateMessage alloc] initWithCandidate:candidate];
|
||||
} else if ([typeString isEqualToString:kARDTypeValueRemoveCandidates]) {
|
||||
RTCLogInfo(@"Received remove-candidates message");
|
||||
NSArray<RTCIceCandidate *> *candidates =
|
||||
[RTCIceCandidate candidatesFromJSONDictionary:values];
|
||||
message = [[ARDICECandidateRemovalMessage alloc]
|
||||
initWithRemovedCandidates:candidates];
|
||||
} else if ([typeString isEqualToString:@"offer"] ||
|
||||
[typeString isEqualToString:@"answer"]) {
|
||||
RTCSessionDescription *description =
|
||||
@ -84,6 +91,27 @@ static NSString const *kARDSignalingMessageTypeKey = @"type";
|
||||
|
||||
@end
|
||||
|
||||
@implementation ARDICECandidateRemovalMessage
|
||||
|
||||
@synthesize candidates = _candidates;
|
||||
|
||||
- (instancetype)initWithRemovedCandidates:(
|
||||
NSArray<RTCIceCandidate *> *)candidates {
|
||||
NSParameterAssert(candidates.count);
|
||||
if (self = [super initWithType:kARDSignalingMessageTypeCandidateRemoval]) {
|
||||
_candidates = candidates;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSData *)JSONData {
|
||||
return
|
||||
[RTCIceCandidate JSONDataForIceCandidates:_candidates
|
||||
withType:kARDTypeValueRemoveCandidates];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation ARDSessionDescriptionMessage
|
||||
|
||||
@synthesize sessionDescription = _sessionDescription;
|
||||
|
||||
Reference in New Issue
Block a user