bindSecure 静态方法

Future<HttpServer> bindSecure(
  1. dynamic address,
  2. int port,
  3. SecurityContext context, {
  4. int backlog = 0,
  5. bool v6Only = false,
  6. bool requestClientCertificate = false,
  7. bool shared = false,
})

参数 address 可以是 StringInternetAddress。如果 addressStringbind 将执行 InternetAddress.lookup 并使用列表中的第一个值。要监听回环适配器,这将只允许来自本地主机的入站连接,请使用值 InternetAddress.loopbackIPv4InternetAddress.loopbackIPv6。要允许来自网络的入站连接,请使用 InternetAddress.anyIPv4InternetAddress.anyIPv6 来绑定到所有接口或特定接口的 IP 地址。

如果使用 IP 版本 6 (IPv6) 地址,将接受 IP 版本 6 (IPv6) 和版本 4 (IPv4) 的连接。要仅限制为版本 6 (IPv6),请使用 v6Only 将版本设置为仅 6。

如果 port 的值为 0,系统将选择一个短暂的端口号。实际使用的端口号可以通过 port 属性获取。

可选参数 backlog 可以用于指定底层 OS 监听设置的监听队列。如果 backlog 的值为 0(默认值),系统将选择一个合理的值。

如果 requestClientCertificate 为 true,服务器将要求客户端使用客户端证书进行身份验证。服务器将广告受信任的客户端证书发行商的名称,这些名称来自 SecurityContext,其中它们已使用 SecurityContext.setClientAuthorities 设置。

可选参数shared指定是否额外的HttpServer对象可以绑定到相同的addressportv6Only组合。如果sharedtrue,并且从这个隔离器或其他隔离器中的更多HttpServer绑定了端口,则传入的连接将分配给所有已绑定的HttpServer。可以通过这种方式在多个隔离器之间分配连接。

实现

static Future<HttpServer> bindSecure(
        address, int port, SecurityContext context,
        {int backlog = 0,
        bool v6Only = false,
        bool requestClientCertificate = false,
        bool shared = false}) =>
    _HttpServer.bindSecure(address, port, context, backlog, v6Only,
        requestClientCertificate, shared);