Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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);
        }