如何使用actix web HttpResponse从东京TCP流发送数据

如何使用actix web HttpResponse从东京TCP流发送数据,tcp,rust,stream,rust-tokio,actix-web,Tcp,Rust,Stream,Rust Tokio,Actix Web,我需要从中读取N字节并将其作为发送(稍后我仍需要使用该流)。目前,我正在使用以下代码: use futures::channel::mpsc; 使用actix_web::HttpResponse; 使用tokio::net::TcpStream; let stream:TcpStream=。。。; 让mut stream=stream.take(N); let(mut发送方,接收方)=mpsc::unbounded(); 环路{ 让mut buffer=vec![0;BUFF_SIZE]; 设n

我需要从中读取
N
字节并将其作为发送(稍后我仍需要使用该流)。目前,我正在使用以下代码:

use futures::channel::mpsc;
使用actix_web::HttpResponse;
使用tokio::net::TcpStream;
let stream:TcpStream=。。。;
让mut stream=stream.take(N);
let(mut发送方,接收方)=mpsc::unbounded();
环路{
让mut buffer=vec![0;BUFF_SIZE];
设n=stream.read(&mut buffer).wait?;
如果n>0{
buffer.truncate(n);
让data=Ok(web::Bytes::from(buffer));
发送者。发送(数据)。等待?;
}否则{
打破
}
}
//用TCP流做更多的事情
让mut stream=stream.into_inner();
...
Ok(HttpResponse::Ok().streaming(接收器))
它可以工作,但我想知道它是否可以改进,因为我找不到更好的解决方案,它不需要使用
mpsc::channel
,也不需要为每次读取分配一个新的
缓冲区和
web::Bytes
(除了我需要指定一个任意的
BUFF\u大小