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

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: Add call options header and start call button Created 5 years, 2 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 [self sendMessage:answer];
230 break;
231 }
232 case kARDSignalingMessageTypeAnswer:
233 // Should not receive answer in loopback scenario.
234 break;
235 case kARDSignalingMessageTypeCandidate:
236 // Send back to server.
237 [self sendMessage:message];
238 break;
239 case kARDSignalingMessageTypeBye:
240 // Nothing to do.
241 return;
242 }
243 }
244
245 - (void)channel:(id<ARDSignalingChannel>)channel
246 didChangeState:(ARDSignalingChannelState)state {
247 }
248
249 @end
250
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698