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