参考等级:★★★⛤⛤
概述
libuv是一个纯异步IO事件库,并不像libevent那样带有http功能。需要http,自己加。需要 websocket自己加。需要pop、smtp,自己加。
http_parser 是一个http头解释器,与libuv一样,都是nodejs才用的库,可以用来从tcp协议数据中分析出http请求信息,是个http高性能实现,结构占用32字节内存。
如果你用http_parser在以编码的方式只取感兴趣的头信息,其他信息略过,性能将是几乎完美的,没有过多的性能冗余。
如果你用http_parser先把所有头信息都存起来,像http服务器那样,到逻辑处理时再根据需求取用,那么性能必然或多或少受到影响。
ws_parser和websocket_parser是两个websocket头解析器,(并不负责http头,也不处理握手,仅处理websocket的帧数据),解析期间前者占用16字节,后者占用48个字节。虽然都叫parser,但前者没有发送函数,所以是个不完整的库。
上面所有库都没有处理websocket的握手、升级。我会在后面给出握手代码。
http_parser的集成
直接把http_parser.c、http_parser.h两个文件复制到libuv