private void UpgradeWebSocket(IChannel channel, Request request) { var response = new Response { Status = 101, Protocol="1.1"}; var finder = GetWebSocketUriFinder(request); if (finder == null) return; channel.SetConfig("handler", finder.GetHandler(request.GetPath())); //((IChannelHandler)channel.GetConfig("handler")).GetHandler(); response.GetHeader().AppendLine("Upgrade: websocket") .AppendLine("Connection: Upgrade") .AppendLine("Sec-WebSocket-Accept: " + GetWebSocketAcceptCode(request.GetHeader("Sec-WebSocket-Key"))); channel.SendMessage(response); channel.SetConfig("encoder", Protocol.PacketEncoder.WebSocket.WebSocketEncoder.Encoder); channel.SetConfig("decoder", Protocol.PacketEncoder.WebSocket.WebSocketDecoder.Decoder); //protocol.SetProtocol(WebSocketProtocol.Protocol); ((IChannelHandler)channel.GetConfig("handler")).Connected(null/**/); //handler.GetHandler().Connected(channel); }