async void _httpServer_WebSocketConnecting(object sender, WebSocketConnectingEventArgs e) { var token = e.QueryString["api_key"]; if (!string.IsNullOrWhiteSpace(token)) { var session = await GetSession(e.QueryString, e.Endpoint).ConfigureAwait(false); if (session == null) { //e.AllowConnection = false; } } }
async void _httpServer_WebSocketConnecting(object sender, WebSocketConnectingEventArgs e) { //var token = e.QueryString["api_key"]; //if (!string.IsNullOrWhiteSpace(token)) //{ // try // { // var session = await GetSession(e.QueryString, e.Endpoint).ConfigureAwait(false); // if (session == null) // { // e.AllowConnection = false; // } // } // catch (Exception ex) // { // _logger.ErrorException("Error getting session info", ex); // } //} }
private void ProcessWebSocketRequest(HttpListenerContext ctx) { try { var endpoint = ctx.Request.RemoteEndPoint.ToString(); var url = ctx.Request.RawUrl; var queryString = new NameValueCollection(ctx.Request.QueryString ?? new NameValueCollection()); var connectingArgs = new WebSocketConnectingEventArgs { Url = url, QueryString = queryString, Endpoint = endpoint }; if (WebSocketConnecting != null) { WebSocketConnecting(connectingArgs); } if (connectingArgs.AllowConnection) { _logger.Debug("Web socket connection allowed"); var webSocketContext = ctx.AcceptWebSocket(null); if (WebSocketConnected != null) { WebSocketConnected(new WebSocketConnectEventArgs { Url = url, QueryString = queryString, WebSocket = new SharpWebSocket(webSocketContext.WebSocket, _logger), Endpoint = endpoint }); } } else { _logger.Warn("Web socket connection not allowed"); ctx.Response.StatusCode = 401; ctx.Response.Close(); } } catch (Exception ex) { _logger.ErrorException("AcceptWebSocketAsync error", ex); ctx.Response.StatusCode = 500; ctx.Response.Close(); } }
private void OnWebSocketConnecting(WebSocketConnectingEventArgs args) { if (_disposed) { return; } if (WebSocketConnecting != null) { WebSocketConnecting(this, args); } }
private void OnWebSocketConnecting(WebSocketConnectingEventArgs args) { if (WebSocketConnecting != null) { WebSocketConnecting(this, args); } }