3个版本
使用旧的Rust 2015
0.1.2 | 2017年1月20日 |
---|---|
0.1.1 | 2016年4月2日 |
0.1.0 | 2016年4月2日 |
20 在 #drain
每月21次下载
4KB
这是一个小巧的Rust包,包含一个Iron中间件。该中间件旨在解决hyper中的bug,该bug可能导致套接字在没有完全读取上一个请求的情况下被重用,这总是会导致下一个请求在解析时失败。
有关使用方法,请参阅文档。
lib.rs
:
Iron中间件,确保在重用套接字之前完全读取请求
Hyper保持套接字活跃以在请求之间重用它们,以提高速度。如果一个不应该有主体的请求发送了一个主体,或者如果服务器没有读取请求的全部主体,那么下一个请求将因为网络缓冲区中剩余的数据而被损坏。
此模块中的Drain
适配器定义了一个iron AfterMiddleware
,确保在下一个请求之前清空缓冲区,无论当前请求是否成功或失败。它读取一个可配置的限制,如果有更多数据剩余,它将关闭套接字。
使用方法
extern crate iron;
extern crate iron_drain;
use iron::prelude::*;
use iron::status;
use iron_drain::Drain;
let mut srv = Chain::new(|_: &mut Request| {
Ok(Response::with((status::Ok, "Hello world!")))
});
srv.link_after(Drain::new());
Iron::new(srv).http("localhost:3000").unwrap();
依赖关系
~6MB
~138K SLoC