private bool upgradeToWebSocket(HttpListenerContext context) { var res = context.Response; var wsContext = context.AcceptWebSocket(); var path = wsContext.Path.UrlDecode(); IServiceHost svcHost; if (!_svcHosts.TryGetServiceHost(path, out svcHost)) { res.StatusCode = (int)HttpStatusCode.NotImplemented; return(false); } svcHost.BindWebSocket(wsContext); return(true); }
private bool processWebSocketRequest(HttpListenerContext context) { var wsContext = context.AcceptWebSocket(); var path = wsContext.Path.UrlDecode(); IServiceHost svcHost; if (!_svcHosts.TryGetServiceHost(path, out svcHost)) { context.Response.StatusCode = (int)HttpStatusCode.NotImplemented; return(false); } wsContext.WebSocket.Log = _logger; svcHost.BindWebSocket(wsContext); return(true); }
/// <summary> /// Accepts a WebSocket connection request. /// </summary> /// <param name="context"> /// A <see cref="TcpListenerWebSocketContext"/> that contains the WebSocket connection request objects. /// </param> protected override void AcceptWebSocket(TcpListenerWebSocketContext context) { var ws = context.WebSocket; var path = context.Path.UrlDecode(); IServiceHost svcHost; if (!_svcHosts.TryGetServiceHost(path, out svcHost)) { ws.Close(HttpStatusCode.NotImplemented); return; } if (BaseUri.IsAbsoluteUri) { ws.Url = new Uri(BaseUri, path); } svcHost.BindWebSocket(context); }