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);
}