WebSocket.fromUpgradedSocket 构造函数
- Socket socket, {
- String? protocol,
- bool? serverSide,
- CompressionOptions compression = CompressionOptions.compressionDefault,
从已升级的套接字创建 WebSocket。
此调用之前必须已经发生了初始 WebSocket 握手。WebSocket 客户端可以使用 WebSocket.connect 自动执行握手,而服务器可以使用 WebSocketTransformer.upgrade 执行。要手动升级 HttpRequest,可以调用 HttpResponse.detachSocket。
如果有的话,protocol
应该是握手协商的协议。
serverSide
必须显式传递。如果它是 false
,WebSocket 将充当客户端并屏蔽它发送的消息。如果它是 true
,它将充当服务器并且不会屏蔽其消息。
如果提供了 compression
,则创建的 WebSocket 将配置为协商指定的 CompressionOptions。如果没有指定,则创建的 WebSocket 将具有默认的 CompressionOptions。
实现
factory WebSocket.fromUpgradedSocket(Socket socket,
{String? protocol,
bool? serverSide,
CompressionOptions compression = CompressionOptions.compressionDefault}) {
if (serverSide == null) {
throw ArgumentError("The serverSide argument must be passed "
"explicitly to WebSocket.fromUpgradedSocket.");
}
return _WebSocketImpl._fromSocket(
socket, protocol, compression, serverSide);
}