连接管理
2026/2/28大约 1 分钟hyperlanewebrustusage-introductionconnection
提示
hyperlane 框架提供了完整的连接状态管理功能,包括连接的中止、关闭状态控制,以及 Keep-Alive 连接支持。
连接状态管理
获取连接状态
// 是否中止生命周期中的后续流程
let is_aborted: bool = ctx.get_set_aborted(true);
// 连接是否断开
let is_closed: bool = ctx.get_set_closed(true);
// 是否停止(等价于is_aborted || is_closed)
let is_terminated: bool = ctx.is_terminated();设置连接状态
ctx.set_aborted(true);
ctx.set_closed(true);Keep-Alive 连接
检查是否启用 Keep-Alive
let keep_alive: bool = ctx.get_request().is_enable_keep_alive();基本使用示例
连接状态检查
if ctx.get_set_closed(true) {
return;
}手动管理长连接
框架默认会处理长连接,对开发者也提供了手动管理长连接的方式。
while ctx.http_from_stream().is_ok() {
if !ctx.get_request().is_enable_keep_alive() {
ctx.set_closed(true);
break;
}
}关闭连接
提示
此方法会关闭 TCP 连接,不会终止当前的生命周期(当前声明周期结束不会进入下一次生命周期循环,需要重新建立 TCP 连接),当前声明周期内的代码正常执行,但是不会再发送响应。
ctx.set_closed(true);