connect static method

Future<IoWebSocketConnection> connect(
  1. Uri uri, {
  2. CancellationToken? cancellationToken,
  3. Map<String, String>? headers,
  4. Iterable<String>? protocols,
  5. Duration? pingInterval,
})

Implementation

static Future<IoWebSocketConnection> connect(Uri uri,
    {CancellationToken? cancellationToken,
    Map<String, String>? headers,
    Iterable<String>? protocols,
    Duration? pingInterval}) async {
  final token = cancellationToken ?? CancellationToken();
  token.throwIfCanceled();
  final pending = io.WebSocket.connect(uri.toString(),
      headers: headers, protocols: protocols);
  unawaited(pending.then<void>((socket) async {
    if (token.isCanceled) await socket.close();
  }, onError: (Object e, StackTrace s) {}));
  // Ownership transfers to the returned connection.
  // ignore: close_sinks
  final socket = await token.race(pending);
  socket.pingInterval = pingInterval;
  return IoWebSocketConnection._(socket);
}