连接生命周期


🌐 Connection lifecycle

一个典型的客户会话会经过以下几个阶段:

🌐 A typical client session progresses through these stages:

  1. 使用服务器地址和选项调用 quic.connect()。这会返回一个 QuicSession
  2. TLS 握手会自动运行。session.opened 在握手完成时解析,提供协商的 ALPN、加密套件和证书验证结果。
  3. 打开流、发送数据报,并交换数据。
  4. 调用 session.close() 以启动优雅关闭。允许现有流完成,然后会话被销毁。返回的 promise(也可作为 session.closed 使用)在拆除完成时解决。

在服务器端,使用回调调用 quic.listen()。回调在每个传入会话的 TLS 握手开始后触发。传入的流通过 session.onstream 回调到达。

🌐 On the server side, call quic.listen() with a callback. The callback fires for each incoming session after the TLS handshake begins. Incoming streams arrive via the session.onstream callback.

session.destroy() 可立即进行拆解——所有打开的流都会被销毁,且会话在不等待它们完成的情况下关闭。

QuicEndpointQuicSession 支持 Symbol.asyncDispose,因此它们可以与 await using 一起用于自动清理。