流
2025年3月31日小于 1 分钟hyperlanewebrustusage-introductionstream
提示
hyperlane
框架接收请求和发送响应均依赖 stream
,使用方式如下
获取 stream
let ctx: RwLockWriteContext = ctx.get_write_lock().await;
let stream_lock: Arc<TcpStream> = ctx.get_stream().clone().unwrap();
获取可变 stream
推荐
let mut = ctx.get().await;
inner_ctx.get_mut_stream().and_then(|mut stream| {});
通过写锁
let mut ctx: RwLockWriteContext = ctx.get_write_lock().await;
ctx.get_mut_stream().and_then(|mut stream| {});
设置 stream
let inner_ctx: InnerContext = ctx.get().await;
inner_ctx.set_stream(None);
let mut ctx: RwLockWriteContext = ctx.get_write_lock().await;
ctx.set_stream(None);
获取客户端地址
提示
完整接口参阅官方文档,此处只介绍通过 stream
解析使用
let socket_addr: String = ctx
.get_read_lock()
.await
.peer_addr()
.and_then(|host| Ok(host.to_string()))
.unwrap_or("Unknown".to_owned());