4 个版本
0.1.3 | 2020年6月17日 |
---|---|
0.1.2 | 2020年6月17日 |
0.1.1 | 2020年6月17日 |
0.1.0 | 2020年6月17日 |
#293 in WebSocket
13KB
280 行
为 HAWK 设计
示例
use tokio::net::TcpListener;
use http_rs::Http;
use websocket_rs::{ Websocket, Opcode };
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut listener = TcpListener::bind("127.0.0.1:8080").await?;
println!("Listening for websocket connections on 127.0.0.1:8080");
while let Ok((stream, addr)) = listener.accept().await {
tokio::spawn(async move {
println!("New connection from {:?}", addr);
let mut http = Http::new(stream);
if let Some(req) = http.next().await {
println!("{:?}", req);
}
});
}
Ok(())
}
待办事项
- 正确处理错误
- 支持 GET/POST 请求
- 解析请求行和头
- 读取 POST 主体
- 生成适当的响应
- 处理压缩
- 从磁盘服务静态文件
依赖项
~8–14MB
~177K SLoC