spark中处理http_如何高效的在libuv中处理http及websocket

415227ad5f266f49d226768c90aec7f8.png

参考等级:★★★⛤⛤

概述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值