Exemple #1
0
        public async void Disconnect()
        {
            if (_state == ARDAppClientState.Disconnected)
            {
                return;
            }
            if (_isRegisteredWithRoomServer)
            {
                await UnregisterWithRoomServerAsync();
            }


            if (_channel != null)
            {
                //  if (_channel.state == kARDWebSocketChannelStateRegistered) {
                //    // Tell the other client we're hanging up.
                //    ARDByeMessage *byeMessage = [[ARDByeMessage alloc] init];
                //    NSData *byeData = [byeMessage JSONData];
                //    [_channel sendData:byeData];
                //  }
                //  // Disconnect from collider.
                //  _channel = nil;
            }
            _clientId       = null;
            _roomId         = null;
            _isInitiator    = false;
            _hasReceivedSdp = false;
            _messageQueue   = new List <ARDSignalingMessage>();
            _peerConnection = null;
            _state          = ARDAppClientState.Disconnected;
        }
Exemple #2
0
        void SetState(ARDAppClientState state)
        {
            if (_state == state)
            {
                return;
            }
            _state = state;

            ARDAppClientDelegate.DidChangeState(this, state);
        }
Exemple #3
0
        public async void ConnectToRoomWithId(string roomName)
        {
            _state = ARDAppClientState.Connecting;

            // Request TURN.
            var turnRequestURL = new Uri(kARDTurnRequestUrl);
            var turns          = await RequestTURNServersWithURLAsync(turnRequestURL);

            for (int i = (int)turns.Count - 1; i >= 0; i--)
            {
                _iceServers.Add(turns.GetItem <NSObject>((nuint)i));
            }
            _isTurnComplete = true;
            // Register with room server.
            var response = await RegisterWithRoomServerForRoomId(roomName);

            if (response == null || response.result != ARDRegisterResultType.SUCCESS)
            {
                System.Diagnostics.Debug.WriteLine($"Failed to register with room server. Result: {response.result}");
                Disconnect();
                NSError error = RoomServerNetworkError(kARDAppClientErrorRoomFull);
                ARDAppClientDelegate.DidError(this, error);
                return;
            }
            System.Diagnostics.Debug.WriteLine("Registered with room server.");

            _isInitiator      = [email protected]_initiator;
            _clientId         = [email protected]_id;
            _roomId           = [email protected]_id;
            _webSocketURL     = [email protected]_url;
            _webSocketRestURL = [email protected]_post_url;

            foreach (var msg in [email protected])
            {
                //if (message.type == kARDSignalingMessageTypeOffer ||
                //         message.type == kARDSignalingMessageTypeAnswer) {
                //       strongSelf.hasReceivedSdp = YES;
                //       [strongSelf.messageQueue insertObject:message atIndex:0];
                //     } else {
                //       [strongSelf.messageQueue addObject:message];
                //     }
            }

            RegisterWithColliderIfReady();
            StartSignalingIfReady();
        }
Exemple #4
0
        public void DidChangeState(ARDAppClientState state)
        {
            switch (state)
            {
            case ARDAppClientState.Disconnected:
                Console.WriteLine("Client disconnected.");
                Hangup();
                break;

            case ARDAppClientState.Connecting:
                Console.WriteLine("Client connecting.");
                break;

            case ARDAppClientState.Connected:
                Console.WriteLine("Client connected.");
                break;
            }
        }
Exemple #5
0
        public void DidChangeState(IARDAppClient client, ARDAppClientState state)
        {
            switch (state)
            {
            case ARDAppClientState.Connected:
                Console.WriteLine("Client connected");
                break;

            case ARDAppClientState.Connecting:

                Console.WriteLine("Client connecting");
                break;

            case ARDAppClientState.Disconnected:
                RemoteDisconnected();
                Console.WriteLine("Client disconnected");
                break;

            default:
                break;
            }
        }
 public void DidChangeState(ARDAppClientState state)
 {
     Console.WriteLine("Client {0}.", state);
 }