1 /* 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #import <Foundation/Foundation.h> 12 13 #import "ARDSignalingChannel.h" 14 15 // Wraps a WebSocket connection to the AppRTC WebSocket server. 16 @interface ARDWebSocketChannel : NSObject <ARDSignalingChannel> 17 18 - (instancetype)initWithURL:(NSURL *)url 19 restURL:(NSURL *)restURL 20 delegate:(id<ARDSignalingChannelDelegate>)delegate; 21 22 // Registers with the WebSocket server for the given room and client id once 23 // the web socket connection is open. 24 - (void)registerForRoomId:(NSString *)roomId clientId:(NSString *)clientId; 25 26 // Sends message over the WebSocket connection if registered, otherwise POSTs to 27 // the web socket server instead. 28 - (void)sendMessage:(ARDSignalingMessage *)message; 29 30 @end 31 32 // Loopback mode is used to cause the client to connect to itself for testing. 33 // A second web socket connection is established simulating the other client. 34 // Any messages received are sent back to the WebSocket server after modifying 35 // them as appropriate. 36 @interface ARDLoopbackWebSocketChannel : ARDWebSocketChannel 37 38 - (instancetype)initWithURL:(NSURL *)url restURL:(NSURL *)restURL; 39 40 @end 41