连接生命周期
🌐 Connection lifecycle
一个典型的客户会话会经过以下几个阶段:
🌐 A typical client session progresses through these stages:
- 使用服务器地址和选项调用
quic.connect()。这会返回一个QuicSession。 - TLS 握手会自动运行。
session.opened在握手完成时解析,提供协商的 ALPN、加密套件和证书验证结果。 - 打开流、发送数据报,并交换数据。
- 调用
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() 可立即进行拆解——所有打开的流都会被销毁,且会话在不等待它们完成的情况下关闭。
QuicEndpoint 和 QuicSession 支持 Symbol.asyncDispose,因此它们可以与 await using 一起用于自动清理。