Метод 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-рукопожатия уже были прочитаны из сокета, эти данные можно передать в параметре 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);
}
© 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/RawSecureSocket/secureServer.html