public void websocket( String regex, final String protocol, final WebSocketRequestCallback callback) { get( regex, new HttpServerRequestCallback() { @Override public void onRequest( final AsyncHttpServerRequest request, final AsyncHttpServerResponse response) { boolean hasUpgrade = false; String connection = request.getHeaders().getHeaders().get("Connection"); if (connection != null) { String[] connections = connection.split(","); for (String c : connections) { if ("Upgrade".equalsIgnoreCase(c.trim())) { hasUpgrade = true; break; } } } if (!"websocket".equalsIgnoreCase(request.getHeaders().getHeaders().get("Upgrade")) || !hasUpgrade) { response.responseCode(404); response.end(); return; } String peerProtocol = request.getHeaders().getHeaders().get("Sec-WebSocket-Protocol"); if (!TextUtils.equals(protocol, peerProtocol)) { response.responseCode(404); response.end(); return; } callback.onConnected(new WebSocketImpl(request, response), request); } }); }