secureServer 静态方法
- RawSocket socket,
- SecurityContext? context,
- {StreamSubscription<
RawSocketEvent> ? subscription, - List<
int> ? bufferedData, - bool requestClientCertificate = false,
- bool requireClientCertificate = false,
- List<
String> ? supportedProtocols}
在现有的服务器连接上启动 TLS。
获取已经连接的 socket
并开始服务器端 TLS 握手以确保通信安全。当返回的未来完成时,RawSecureSocket
已完成 TLS 握手。使用此函数要求连接的另一端将启动 TLS 握手。
如果 socket
已经有订阅,请在 subscription
参数中传递现有的订阅。secureServer 操作将通过用自己的安全处理程序替换处理程序来接管订阅。调用者不得再触碰此订阅。传递已暂停的订阅是错误。
如果已经从套接字中读取了 TLS 握手的一些数据,则可以将这些数据传递给 bufferedData
参数。这些数据将在套接字上可用的大多数其他数据之前被处理。
有关参数的更多信息,请参阅 RawSecureServerSocket.bind。
实现
static Future<RawSecureSocket> secureServer(
RawSocket socket, SecurityContext? context,
{StreamSubscription<RawSocketEvent>? subscription,
List<int>? bufferedData,
bool requestClientCertificate = false,
bool requireClientCertificate = false,
List<String>? supportedProtocols}) {
socket.readEventsEnabled = false;
socket.writeEventsEnabled = false;
return _RawSecureSocket.connect(
socket.address, socket.remotePort, true, socket,
context: context,
subscription: subscription,
bufferedData: bufferedData,
requestClientCertificate: requestClientCertificate,
requireClientCertificate: requireClientCertificate,
supportedProtocols: supportedProtocols);
}