docs: public WebSocket createSocket(URI uri, int timeout) throws IOException
      {
          if (uri == null)
          {
              throw new IllegalArgumentException("The given URI is null.");
          }
  
          if (timeout < 0)
          {
              throw new IllegalArgumentException("The given timeout value is negative.");
          }
  
          // Split the URI.
          String scheme   = uri.getScheme();
          String userInfo = uri.getUserInfo();
          String host     = Misc.extractHost(uri);
          int port        = uri.getPort();
          String path     = uri.getRawPath();
          String query    = uri.getRawQuery();
  
          return createSocket(scheme, userInfo, host, port, path, query, timeout);
      }