статический метод connect
- dynamic host,
- int port,
- {SecurityContext? context,
-
bool onBadCertificate(
- X509Certificate certificate
- void keyLog(
- String line
-
List<
String>? supportedProtocols, - Duration? timeout}
Создает новый защищенный клиентский сокет и подключает его к указанному узлу через указанный порт.
Возвращенный Future завершается значением RawSecureSocket, когда сокет подключен и готов к подписке.
Сертификат, предоставленный сервером, проверяется с использованием доверенных сертификатов, заданных в объекте SecurityContext. Если на клиенте установлен сертификат и ключ с помощью SecurityContext.useCertificateChain и SecurityContext.usePrivateKey, и сервер запрашивает сертификат клиента, этот сертификат отправляется серверу.
onBadCertificate — необязательный обработчик непроверяемых сертификатов. Обработчик получает X509Certificate, может проверить его и решить (или предоставить пользователю возможность решить), принимать ли соединение. Для продолжения соединения RawSecureSocket обработчик должен вернуть true.
onBadCertificate — необязательный обработчик непроверяемых сертификатов. Обработчик получает X509Certificate, может проверить его и решить (или предоставить пользователю возможность решить), принимать ли соединение. Для продолжения соединения SecureSocket обработчик должен вернуть true.
keyLog — необязательный обратный вызов, который вызывается при обмене новыми ключами TLS с сервером. При каждом вызове keyLog получает одну строку в формате журнала ключей NSS. Запись этих строк в файл позволит инструментам (например, Wireshark) расшифровывать данные, передаваемые через этот сокет. Это предназначено для отладки защищенных сокетов на сетевом уровне и не должно использоваться в рабочем коде. Например:
final log = File('keylog.txt');
final socket = await SecureSocket.connect('www.example.com', 443,
keyLog: (line) => log.writeAsStringSync(line, mode: FileMode.append)); supportedProtocols — необязательный список протоколов (в порядке убывания предпочтения), используемых при согласовании протокола ALPN с сервером. Примеры значений: "http/1.1" или "h2". Выбранный протокол можно получить с помощью RawSecureSocket.selectedProtocol.
Реализация
static Future<RawSecureSocket> connect(host, int port,
{SecurityContext? context,
bool onBadCertificate(X509Certificate certificate)?,
void keyLog(String line)?,
List<String>? supportedProtocols,
Duration? timeout}) {
_RawSecureSocket._verifyFields(host, port, false, false);
return RawSocket.connect(host, port, timeout: timeout).then((socket) {
return secure(socket,
context: context,
onBadCertificate: onBadCertificate,
keyLog: keyLog,
supportedProtocols: supportedProtocols);
});
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/RawSecureSocket/connect.html