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 25 clientId:(NSString *)clientId; 26 27 // Sends message over the WebSocket connection if registered, otherwise POSTs to 28 // the web socket server instead. 29 - (void)sendMessage:(ARDSignalingMessage *)message; 30 31 @end 32 33 // Loopback mode is used to cause the client to connect to itself for testing. 34 // A second web socket connection is established simulating the other client. 35 // Any messages received are sent back to the WebSocket server after modifying 36 // them as appropriate. 37 @interface ARDLoopbackWebSocketChannel : ARDWebSocketChannel 38 39 - (instancetype)initWithURL:(NSURL *)url restURL:(NSURL *)restURL; 40 41 @end 42