Example #1
0
        public static async Task <WebSocketConnection> Connect(Uri peer, Action <string> log)
        {
            ClientWebSocket clientWebSocket = new ClientWebSocket();
            await clientWebSocket.ConnectAsync(peer, CancellationToken.None);

            switch (clientWebSocket.State)
            {
            case WebSocketState.Open:
                log?.Invoke($"Opened connection to remote server: {peer}");

                WebSocketConnection socketConnection = new ClientWebSocketConnection(clientWebSocket, peer, log);

                socketConnection.onMessage = DataContext.Instance.ReceiveData;
                CurrentConnection          = socketConnection;

                return(socketConnection);

            default:
                string errorMessage = $"Cannot connect to remote server {peer} with status {clientWebSocket.State}";
                log?.Invoke(errorMessage);
                throw new WebSocketException(errorMessage);
            }
        }
Example #2
0
        public static async Task Disconnect()
        {
            await CurrentConnection.Disconnect();

            CurrentConnection = null;
        }