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 可以是一个 String 或一个 InternetAddress。如果 address 是一个 String,则 bind 将执行 InternetAddress.lookup 并使用列表中的第一个值。要监听回环适配器,仅允许来自本地主机的入站连接,请使用 InternetAddress.loopbackIPv4InternetAddress.loopbackIPv6 的值。要允许来自网络的入站连接,请使用 InternetAddress.anyIPv4InternetAddress.anyIPv6 以绑定到所有接口或特定接口的 IP 地址。

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

如果 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);