public Task ProcessRequest(IDictionary <string, object> environment)
        {
            object    value;
            WebSocket webSocket;

            // Try to get the websocket context from the environment
            if (!environment.TryGetValue(typeof(WebSocketContext).FullName, out value))
            {
                webSocket = new OwinWebSocket(environment);
            }
            else
            {
                webSocket = ((WebSocketContext)value).WebSocket;
            }

            var cts = new CancellationTokenSource();
            var webSocketHandler = new DefaultWebSocketHandler(_maxIncomingMessageSize);

            _prepareWebSocket(webSocketHandler);
            var task = webSocketHandler.ProcessWebSocketRequestAsync(webSocket, cts.Token);

            RunWebSocketHandler(webSocketHandler, cts);

            return(task);
        }
示例#2
0
        public Task ProcessRequestAsync(IDictionary<string, object> env)
        {
            object value;
            WebSocket webSocket;

            // Try to get the websocket context from the environment
            if (!env.TryGetValue(typeof(WebSocketContext).FullName, out value))
            {
                webSocket = new OwinWebSocket(env);
            }
            else
            {
                webSocket = ((WebSocketContext)value).WebSocket;
            }

            var handler = new DefaultWebSocketHandler();
            var task = handler.ProcessWebSocketRequestAsync(webSocket);

            _callback(handler).Catch()
                              .ContinueWith(t => handler.End());
            return task;
        }
示例#3
0
        public Task ProcessRequestAsync(IDictionary <string, object> env)
        {
            object    value;
            WebSocket webSocket;

            // Try to get the websocket context from the environment
            if (!env.TryGetValue(typeof(WebSocketContext).FullName, out value))
            {
                webSocket = new OwinWebSocket(env);
            }
            else
            {
                webSocket = ((WebSocketContext)value).WebSocket;
            }

            var handler = new DefaultWebSocketHandler();
            var task    = handler.ProcessWebSocketRequestAsync(webSocket);

            _callback(handler).Catch()
            .ContinueWith(t => handler.End());
            return(task);
        }
        public Task ProcessRequest(IDictionary<string, object> environment)
        {
            object value;
            WebSocket webSocket;

            // Try to get the websocket context from the environment
            if (!environment.TryGetValue(typeof(WebSocketContext).FullName, out value))
            {
                webSocket = new OwinWebSocket(environment);
            }
            else
            {
                webSocket = ((WebSocketContext)value).WebSocket;
            }

            var cts = new CancellationTokenSource();
            var webSocketHandler = new DefaultWebSocketHandler(_maxIncomingMessageSize);
            var task = webSocketHandler.ProcessWebSocketRequestAsync(webSocket, cts.Token);

            RunWebSocketHandler(webSocketHandler, cts);

            return task;
        }