connect static method

Future<SSEConnection> connect({
  1. required String baseUrl,
  2. required String path,
  3. String method = 'GET',
  4. dynamic data,
  5. Map<String, String>? queryParameters,
  6. Map<String, String>? staticHeaders,
  7. Future<Map<String, String>> dynamicHeaderBuilder()?,
  8. Map<String, String>? headers,
})

创建并连接 SSE

baseUrl 基础 URL path 请求路径 method HTTP 方法,默认为 'GET' data 请求体数据(POST 请求时使用) queryParameters URL 查询参数 staticHeaders 静态请求头 dynamicHeaderBuilder 动态请求头构建器 headers 特定请求的请求头(可选),会与全局请求头合并,如果键相同则覆盖全局请求头

返回已连接的 SSEConnection,可以直接监听事件

Implementation

static Future<SSEConnection> connect({
  required String baseUrl,
  required String path,
  String method = 'GET',
  dynamic data,
  Map<String, String>? queryParameters,
  Map<String, String>? staticHeaders,
  Future<Map<String, String>> Function()? dynamicHeaderBuilder,
  Map<String, String>? headers,
}) async {
  final client = SSEClient(
    baseUrl: baseUrl,
    path: path,
    method: method,
    data: data,
    queryParameters: queryParameters,
    staticHeaders: staticHeaders,
    dynamicHeaderBuilder: dynamicHeaderBuilder,
    headers: headers,
  );

  final connection = SSEConnection._(client);

  try {
    await client.connect();
    connection._isConnected = true;
  } catch (e) {
    await client.close();
    rethrow;
  }

  return connection;
}