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