code: @Override
      protected void verify(FullHttpResponse response) {
          final HttpResponseStatus status = HttpResponseStatus.SWITCHING_PROTOCOLS;
          final HttpHeaders headers = response.headers();
  
          if (!response.status().equals(status)) {
              throw new WebSocketHandshakeException("Invalid handshake response getStatus: " + response.status());
          }
  
          CharSequence upgrade = headers.get(HttpHeaderNames.UPGRADE);
          if (!HttpHeaderValues.WEBSOCKET.contentEqualsIgnoreCase(upgrade)) {
              throw new WebSocketHandshakeException("Invalid handshake response upgrade: " + upgrade);
          }
  
          if (!headers.containsValue(HttpHeaderNames.CONNECTION, HttpHeaderValues.UPGRADE, true)) {
              throw new WebSocketHandshakeException("Invalid handshake response connection: "
                      + headers.get(HttpHeaderNames.CONNECTION));
          }
  
          CharSequence accept = headers.get(HttpHeaderNames.SEC_WEBSOCKET_ACCEPT);
          if (accept == null || !accept.equals(expectedChallengeResponseString)) {
              throw new WebSocketHandshakeException(String.format(
                      "Invalid challenge. Actual: %s. Expected: %s", accept, expectedChallengeResponseString));
          }
      }
docs: <p>
  Process server response:
  </p>
  
  <pre>
  HTTP/1.1 101 Switching Protocols
  Upgrade: websocket
  Connection: Upgrade
  Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
  Sec-WebSocket-Protocol: chat
  </pre>
  
  @param response
  HTTP response returned from the server for the request sent by beginOpeningHandshake00().
  @throws WebSocketHandshakeException