code: public WebSocketServerHandshaker newHandshaker(HttpRequest req) {
  
          CharSequence version = req.headers().get(HttpHeaderNames.SEC_WEBSOCKET_VERSION);
          if (version != null) {
              if (version.equals(WebSocketVersion.V13.toHttpHeaderValue())) {
                  // Version 13 of the wire protocol - RFC 6455 (version 17 of the draft hybi specification).
                  return new WebSocketServerHandshaker13(
                          webSocketURL, subprotocols, allowExtensions, maxFramePayloadLength, allowMaskMismatch);
              } else if (version.equals(WebSocketVersion.V08.toHttpHeaderValue())) {
                  // Version 8 of the wire protocol - version 10 of the draft hybi specification.
                  return new WebSocketServerHandshaker08(
                          webSocketURL, subprotocols, allowExtensions, maxFramePayloadLength, allowMaskMismatch);
              } else if (version.equals(WebSocketVersion.V07.toHttpHeaderValue())) {
                  // Version 8 of the wire protocol - version 07 of the draft hybi specification.
                  return new WebSocketServerHandshaker07(
                          webSocketURL, subprotocols, allowExtensions, maxFramePayloadLength, allowMaskMismatch);
              } else {
                  return null;
              }
          } else {
              // Assume version 00 where version header was not specified
              return new WebSocketServerHandshaker00(webSocketURL, subprotocols, maxFramePayloadLength);
          }
      }
docs: Instances a new handshaker
  
  @return A new WebSocketServerHandshaker for the requested web socket version. Null if web
  socket version is not supported.