@Override public void handshake(Muxer muxer, MuxChannel channel, UpgradeRequest request) throws MuxException, IOException { StringBuilder response = new StringBuilder(); response.append("HTTP/1.1 101 Switching Protocols\r\n"); response.append("Connection: upgrade\r\n"); // not meaningful (per Draft 08) hresp.append("Upgrade: websocket\r\n"); // not meaningful (per Draft 08) hresp.append("Sec-WebSocket-Accept: // Kgo85/8KVE8YPONSeyhgL3GwqhI=\r\n"); response.append("\r\n"); EventDriver websocket = this.eventDriverFactory.wrap(echo); WebSocketSession session = new WebSocketSession(request.getRequestURI(), websocket, channel); session.setNegotiatedSubprotocol("echo"); channel.setSession(session); channel.setSubProtocol("echo"); channel.onOpen(); session.open(); MuxAddChannelResponse addChannelResponse = new MuxAddChannelResponse(); addChannelResponse.setChannelId(channel.getChannelId()); addChannelResponse.setEncoding(MuxAddChannelResponse.IDENTITY_ENCODING); addChannelResponse.setFailed(false); addChannelResponse.setHandshake(response.toString()); muxer.output(addChannelResponse); }