Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: webrtc/examples/objc/AppRTCDemo/ARDWebSocketChannel.m

Issue 1334003002: Loopback mode for AppRTCDemo on iOS. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Review Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #import "ARDWebSocketChannel.h" 11 #import "ARDWebSocketChannel.h"
12 12
13 #import "RTCLogging.h" 13 #import "RTCLogging.h"
14 #import "SRWebSocket.h" 14 #import "SRWebSocket.h"
15 15
16 #import "ARDSignalingMessage.h"
16 #import "ARDUtilities.h" 17 #import "ARDUtilities.h"
17 18
18 // TODO(tkchin): move these to a configuration object. 19 // TODO(tkchin): move these to a configuration object.
19 static NSString const *kARDWSSMessageErrorKey = @"error"; 20 static NSString const *kARDWSSMessageErrorKey = @"error";
20 static NSString const *kARDWSSMessagePayloadKey = @"msg"; 21 static NSString const *kARDWSSMessagePayloadKey = @"msg";
21 22
22 @interface ARDWebSocketChannel () <SRWebSocketDelegate> 23 @interface ARDWebSocketChannel () <SRWebSocketDelegate>
23 @end 24 @end
24 25
25 @implementation ARDWebSocketChannel { 26 @implementation ARDWebSocketChannel {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 NSString *messageString = 191 NSString *messageString =
191 [[NSString alloc] initWithData:message encoding:NSUTF8StringEncoding]; 192 [[NSString alloc] initWithData:message encoding:NSUTF8StringEncoding];
192 RTCLog(@"Registering on WSS for rid:%@ cid:%@", _roomId, _clientId); 193 RTCLog(@"Registering on WSS for rid:%@ cid:%@", _roomId, _clientId);
193 // Registration can fail if server rejects it. For example, if the room is 194 // Registration can fail if server rejects it. For example, if the room is
194 // full. 195 // full.
195 [_socket send:messageString]; 196 [_socket send:messageString];
196 self.state = kARDSignalingChannelStateRegistered; 197 self.state = kARDSignalingChannelStateRegistered;
197 } 198 }
198 199
199 @end 200 @end
201
202 @interface ARDLoopbackWebSocketChannel () <ARDSignalingChannelDelegate>
203 @end
204
205 @implementation ARDLoopbackWebSocketChannel
206
207 - (instancetype)initWithURL:(NSURL *)url restURL:(NSURL *)restURL {
208 return [super initWithURL:url restURL:restURL delegate:self];
209 }
210
211 #pragma mark - ARDSignalingChannelDelegate
212
213 - (void)channel:(id<ARDSignalingChannel>)channel
214 didReceiveMessage:(ARDSignalingMessage *)message {
215 switch (message.type) {
216 case kARDSignalingMessageTypeOffer: {
217 // Change message to answer, send back to server.
218 ARDSessionDescriptionMessage *sdpMessage =
219 (ARDSessionDescriptionMessage *)message;
220 RTCSessionDescription *description = sdpMessage.sessionDescription;
221 NSString *dsc = description.description;
222 dsc = [dsc stringByReplacingOccurrencesOfString:@"offer"
223 withString:@"answer"];
224 RTCSessionDescription *answerDescription =
225 [[RTCSessionDescription alloc] initWithType:@"answer" sdp:dsc];
226 ARDSignalingMessage *answer =
227 [[ARDSessionDescriptionMessage alloc]
228 initWithDescription:answerDescription];
229 NSLog(@"Loopback offer -> answer");
230 [self sendMessage:answer];
tkchin_webrtc 2015/09/11 17:53:53 Interesting. I was thinking you could call peer co
Chuck 2015/09/28 16:26:40 That would work as well, I just followed the js/we
231 break;
232 }
233 case kARDSignalingMessageTypeAnswer:
234 // Should not receive answer in loopback scenario.
235 break;
236 case kARDSignalingMessageTypeCandidate:
237 // Send back to server.
238 NSLog(@"Loopback ICE candidate");
239 [self sendMessage:message];
240 break;
241 case kARDSignalingMessageTypeBye:
242 // Nothing to do.
243 return;
244 }
245 }
246
247 - (void)channel:(id<ARDSignalingChannel>)channel
248 didChangeState:(ARDSignalingChannelState)state {
249 }
250
251 @end
252
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698