connect static method

Future<InspectorWebSocket> connect(
  1. String url, {
  2. Iterable<String>? protocols,
  3. HttpClient? customClient,
  4. CompressionOptions compression = CompressionOptions.compressionDefault,
})

建立连接(等价 WebSocket.connect)/ Connect (equivalent to WebSocket.connect)

url ws/wss 地址 / ws/wss URL 其余参数与 WebSocket.connect 一致 / Remaining params mirror WebSocket.connect

Implementation

static Future<InspectorWebSocket> connect(
  String url, {
  Iterable<String>? protocols,
  HttpClient? customClient,
  CompressionOptions compression = CompressionOptions.compressionDefault,
}) async {
  final ws = WsInspectorService.instance.isEnabled
      ? await runZoned(
          () => WebSocket.connect(
            url,
            protocols: protocols,
            customClient: customClient,
            compression: compression,
          ),
          zoneValues: {wsHandshakeZoneKey: true},
        )
      : await WebSocket.connect(
          url,
          protocols: protocols,
          customClient: customClient,
          compression: compression,
        );
  // 未开启抓取时不创建会话,后续 add/listen 均为空操作(零开销)。
  // When capture is off, no session is created, so add/listen become no-ops.
  if (!WsInspectorService.instance.isEnabled) {
    return InspectorWebSocket._(ws, null);
  }
  return WsInspectorService.instance._wrap(ws, url);
}