Example #1
0
        internal static void ThrowIfInvalidState(WebSocketState currentState, bool isDisposed, WebSocketState[] validStates)
        {
            string validStatesText = string.Empty;

            if (validStates != null && validStates.Length > 0)
            {
                foreach (WebSocketState validState in validStates)
                {
                    if (currentState == validState)
                    {
                        // Ordering is important to maintain .NET 4.5 WebSocket implementation exception behavior.
                        if (isDisposed)
                        {
                            throw new ObjectDisposedException(nameof(WebSocket));
                        }

                        return;
                    }
                }

                validStatesText = string.Join(", ", validStates);
            }

            throw new WebSocketException("net_WebSockets_InvalidState");
        }
Example #2
0
        private void close(PayloadData payload, bool send, bool wait)
        {
            lock (_forConn)
            {
                if (_readyState == WebSocketState.CloseSent || _readyState == WebSocketState.Closed)
                {
                    return;
                }

                _readyState = WebSocketState.CloseSent;
            }

            var e = new CloseEventArgs(payload);

            e.WasClean =
                closeHandshake(
                    send ? WebSocketFrame.CreateCloseFrame(Mask.Unmask, payload).ToByteArray() : null,
                    wait ? 1000 : 0);

            _readyState = WebSocketState.Closed;
            try
            {
                OnClose.Emit(this, e);
            }
            catch (Exception ex)
            {
                error("An exception has occurred while OnClose.", ex);
            }
        }
Example #3
0
 internal static string CheckIfClosable(this WebSocketState state)
 {
     return(state == WebSocketState.CloseSent
            ? "While closing the WebSocket connection."
            : state == WebSocketState.Closed
              ? "The WebSocket connection has already been closed."
              : null);
 }
Example #4
0
        // As server
        internal void Close(HttpResponse response)
        {
            _readyState = WebSocketState.CloseSent;
            sendHttpResponse(response);

            closeServerResources();

            _readyState = WebSocketState.Closed;
        }
Example #5
0
        // As server
        internal async Task CloseAsync(HttpResponse response)
        {
            _readyState = WebSocketState.CloseSent;
            await SendHttpResponseAsync(response).ConfigureAwait(false);

            closeServerResources();

            _readyState = WebSocketState.Closed;
        }
Example #6
0
 private void init()
 {
     _compression          = CompressionMethod.None;
     _cookies              = new CookieCollection();
     _forConn              = new object();
     _messageEventQueue    = new Queue <MessageEventArgs>();
     _forMessageEventQueue = ((ICollection)_messageEventQueue).SyncRoot;
     _readyState           = WebSocketState.Connecting;
 }
Example #7
0
 // As server
 public void ConnectAsServer()
 {
     try
     {
         _readyState = WebSocketState.Open;
         open();
     }
     catch (Exception ex)
     {
         processException(ex, "An exception has occurred while connecting.");
     }
 }
Example #8
0
 // As server
 public async Task ConnectAsServer()
 {
     try
     {
         _readyState = WebSocketState.Open;
         await OpenAsync().ConfigureAwait(false);
     }
     catch (Exception ex)
     {
         await ProcessExceptionAsync(ex, "An exception has occurred while connecting.").ConfigureAwait(false);
     }
 }
Example #9
0
 private void OnStateChanged(System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     Console.WriteLine("Status from [{0}] to [{1}].", prevState, newState);
 }
Example #10
0
 private void Socket_OnStateChanged(System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     throw new NotImplementedException();
 }
Example #11
0
 private static void Program_OnStateChanged(object sender, System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     PureWebSocket ws = sender as PureWebSocket;
     Console.WriteLine($@"{ws.InstanceName}: {prevState} -> {newState}");
 }
 protected static bool IsStateTerminal(System.Net.WebSockets.WebSocketState state)
 {
     return(default(bool));
 }
 private void Socket_OnStateChanged(System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     WriteLog($"Socket state changed from {prevState} to {newState}.");
 }
Example #14
0
 private async void _webSocket_OnStateChanged(object sender, System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     if (newState == System.Net.WebSockets.WebSocketState.Open)
     {
     }
 }
Example #15
0
 private void On_StateChanged(System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     Console.WriteLine("---STATECHANGED: {0} => {1}", prevState, newState);
 }
Example #16
0
 protected static void ThrowOnInvalidState(System.Net.WebSockets.WebSocketState state, params System.Net.WebSockets.WebSocketState[] validStates)
 {
 }
Example #17
0
 protected static bool IsStateTerminal(System.Net.WebSockets.WebSocketState state)
 {
     throw null;
 }
Example #18
0
 private static void _client_OnStateChanged(System.Net.WebSockets.WebSocketState newState, System.Net.WebSockets.WebSocketState prevState)
 {
     // the connection state has changed, is this bad? that is for you to decide if you want to
     OutputConsole.WriteLine($"Socket state changed from {prevState} to {newState}", ConsoleColor.Gray);
 }