description

# connect static method

Future<WebSocket> connect(

1. String url, {
2. Iterable<String>? protocols,
3. Map<String, dynamic>? headers,
4. CompressionOptions compression = CompressionOptions.compressionDefault,
5. HttpClient? customClient,
6. int maxPayloadLength = _kDefaultWebSocketMaxPayloadLength,

})

Create a new WebSocket connection. The URL supplied in `url` must use the scheme `ws` or `wss`.

The `protocols` argument is specifying the subprotocols the client is willing to speak.

The `headers` argument is specifying additional HTTP headers for setting up the connection. This would typically be the `Origin` header and potentially cookies. The keys of the map are the header fields and the values are either String or List.

If `headers` is provided, there are a number of headers which are controlled by the WebSocket connection process. These headers are:

- `connection`
- `sec-websocket-key`
- `sec-websocket-protocol`
- `sec-websocket-version`
- `upgrade`

If any of these are passed in the `headers` map they will be ignored.

If the `url` contains user information this will be passed as basic authentication when setting up the connection. See WebSocketTransformer for `maxPayloadLength`.

## Implementation

    static Future<WebSocket> connect(
      String url, {
      Iterable<String>? protocols,
      Map<String, dynamic>? headers,
      CompressionOptions compression = CompressionOptions.compressionDefault,
      HttpClient? customClient,
      int maxPayloadLength = _kDefaultWebSocketMaxPayloadLength,
    }) => _WebSocketImpl.connect(
      url,
      protocols,
      headers,
      compression: compression,
      customClient: customClient,
      maxPayloadLength: maxPayloadLength,
    );