upgrade 静态方法

Future<WebSocket> upgrade(
  1. HttpRequest request, {
  2. dynamic protocolSelector(
    1. List<String> protocols
    )?,
  3. CompressionOptions compression = CompressionOptions.compressionDefault,
})

将 HttpRequest 升级到 WebSocket 连接。如果请求不是有效的 WebSocket 升级请求,将返回状态码 500 的 HTTP 响应。否则,当升级过程完成后,返回的 future 将完成并带有 WebSocket。

如果提供了 protocolSelector,将调用 protocolSelector 来选择要使用的协议(如果客户端提供了任何协议)。protocolSelector 应返回一个 String 或一个完成 StringFuture。该 String 必须存在于协议列表中。

如果提供了 compression,创建的 WebSocket 将配置为与指定的 CompressionOptions 进行协商。如果没有指定,则 WebSocket 将使用默认的 CompressionOptions 创建。

实现

static Future<WebSocket> upgrade(HttpRequest request,
    {Function(List<String> protocols)? protocolSelector,
    CompressionOptions compression = CompressionOptions.compressionDefault}) {
  return _WebSocketTransformerImpl._upgrade(
      request, protocolSelector, compression);
}