Метод secureServer
Инициализирует TLS на существующем соединении сервера.
Принимает уже подключенное socket и запускает TLS-рукопожатие со стороны сервера, чтобы сделать общение безопасным. Когда возвращаемое будущее завершается, SecureSocket завершает TLS-рукопожатие. Для использования этой функции необходимо, чтобы другой конец соединения начал TLS-рукопожатие.
Если у socket уже есть подписка, эта подписка больше не будет получать события. В большинстве случаев вызов StreamSubscription.pause на этой подписке перед началом TLS-рукопожатия — это правильное действие.
Если часть данных TLS-рукопожатия уже была прочитана из сокета, эти данные можно передать в параметр bufferedData. Эти данные будут обработаны до любого другого доступного на сокете.
См. SecureServerSocket.bind для получения дополнительной информации об аргументах.
Реализация
static Future<SecureSocket> secureServer(
Socket socket, SecurityContext? context,
{List<int>? bufferedData,
bool requestClientCertificate = false,
bool requireClientCertificate = false,
List<String>? supportedProtocols}) {
return ((socket as dynamic /*_Socket*/)._detachRaw() as Future)
.then<RawSecureSocket>((detachedRaw) {
return RawSecureSocket.secureServer(detachedRaw[0] as RawSocket, context,
subscription: detachedRaw[1] as StreamSubscription<RawSocketEvent>?,
bufferedData: bufferedData,
requestClientCertificate: requestClientCertificate,
requireClientCertificate: requireClientCertificate,
supportedProtocols: supportedProtocols);
}).then<SecureSocket>((raw) => new SecureSocket._(raw));
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-io/SecureSocket/secureServer.html