流
2025年7月1日小于 1 分钟hyperlanewebrustusage-introductionstream
提示
hyperlane
框架接收请求和发送响应均依赖 stream
,类型是 ArcRwLockStream
需要注意框架提供的 stream
仅可读,使用方式如下:
获取 stream
let stream_lock: ArcRwLockStream = ctx.get_stream().await.clone().unwrap();
获取客户端地址
提示
完整接口参阅官方文档,此处只介绍通过 stream
解析使用。
let socket_addr: String = ctx
.get_stream()
.await
.unwrap()
.read()
.await
.peer_addr()
.and_then(|host| Ok(host.to_string()))
.unwrap_or("Unknown".to_owned());
关闭连接
提示
此方法会关闭 TCP
连接,不会终止当前的生命周期(当前声明周期结束不会进入下一次生命周期循环,需要重新建立 TCP
连接),当前声明周期内的代码正常执行,但是不会再发送响应。
ctx.closed().await;