当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart RawSecureSocket.connect用法及代码示例


dart:io 库中RawSecureSocket.connect 方法的用法介绍如下。

用法:

Future<RawSecureSocket> connect(
   dynamic host,    
   int port,    
   {SecurityContext? context,    
   bool onBadCertificate(
   X509Certificate certificate   
)?,    
   void keyLog(
   String line   
)?,    
   List<String>? supportedProtocols,    
   Duration? timeout}   
)
      override

构造一个新的安全客户端套接字并将其连接到给定端口上的给定主机。

返回的FutureRawSecureSocket 在连接并准备好订阅时完成。

服务器提供的证书使用在 SecurityContext 对象中设置的可信证书进行检查,如果在客户端上设置了证书和 key ,则使用 SecurityContext.useCertificateChainSecurityContext.usePrivateKey ,并且服务器要求客户端证书,然后该客户端证书被发送到服务器。

onBadCertificate 是不可验证证书的可选处理程序。处理程序接收到 X509Certificate ,并且可以检查它并决定(或让用户决定)是否接受连接。处理程序应返回 true 以继续 RawSecureSocket 连接。

onBadCertificate 是不可验证证书的可选处理程序。处理程序接收到 X509Certificate ,并且可以检查它并决定(或让用户决定)是否接受连接。处理程序应返回 true 以继续 SecureSocket 连接。

keyLog 是一个可选回调,当与服务器交换新的 TLS key 时将调用该回调。每次调用keyLog 将在NSS Key Log Format 中接收一行文本。将这些行写入文件将允许工具(例如 Wireshark )解密通过此套接字发送的内容。这意味着允许network-level 调试安全套接字,不应在生产代码中使用。例如:

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 获得所选协议。

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 connect method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。