secureServer 静态方法
- RawSocket socket,
- SecurityContext? context, {
- StreamSubscription<
RawSocketEvent> ? subscription, - List<
int> ? bufferedData, - bool requestClientCertificate = false,
- bool requireClientCertificate = false,
- List<
String> ? supportedProtocols,
在现有的服务器连接上启动 TLS。
接受一个已连接的 socket
并开始服务器端 TLS 握手以使通信安全。当返回的 future 完成时,RawSecureSocket 已完成 TLS 握手。使用此函数需要连接的另一端将启动 TLS 握手。
如果 socket
已经有一个订阅,请将现有订阅传递到 subscription
参数中。secureServer 操作将通过用自己的安全处理替换处理程序来接管订阅。调用者不得再触摸此订阅。传递暂停的订阅是错误的。
如果 TLS 握手的一些数据已经从 socket 中读取,这些数据可以传递到 bufferedData
参数中。这些数据将在处理 socket 上可用的任何其他数据之前进行处理。
有关参数的更多信息,请参阅 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);
}