guonaihong
guonaihong
讨论:数据是入参是用[][]byte,还是[]byte? * 一开始我挺赞成[][]byte的形式。 问题: * 后面考虑到处理http header。现有[]byte形式,可以保证一个回调是一个完整的http header field或者value。使用[][]byte必然带来分割,这种情况如何处理?
我在httparser设计了一种TwoBuf的数据结构,相比直接append拼接未解析数据。拷贝的字节数据会更少,也不需要重新malloc新的buf。 ```go tb := NewTwoBuf() // 取右边buffer buf := tb.Right() //模拟从异步io里面填充一块buffer n, err := r.Read(buf) if err == io.EOF { break } // 把溢出数据包含进来 // 左边放需要重新解析数据,右边放新塞的buffer currSentData := tb.All(n) //解析...
后面打算写个类型wrk的工具,新的工具命名ak47(哈哈),实战下httparser库。
行啊,你优化好了放到master分支。我现在还在设计ak47如何写。
我有点懂你的意思了,解析websocket的时候如果用定长读取frame,其中conn每次都几字节字节的发,流量没有打满,这种垃圾连接会影响后面的连接处理。这块要解决要深度配合epoll写解析器。 ---原始邮件--- 发件人: ***@***.***> 发送时间: 2021年7月9日(周五) 晚上11:22 收件人: ***@***.***>; 抄送: ***@***.******@***.***>; 主题: Re: [antlabs/httparser] Execute形参讨论 (#5) 哎,好累,golang websocket 1000k的问题,几年前有个帖子,还有个gobwas/ws的框架配合easygo/netpoll来做,就是poller的方式避免每个连接一个协程的方案。 但是他们这个方案有问题,我已经在几个地方给他们说了好几轮,能get到的人好少,多数人都看不懂,数千star,随便几个慢连接就能把他服务搞慢甚至业务协程池耗尽导致服务不可用 甚至这种几千star的作者自己都搞不懂问题到底在哪、需要怎么解决 真无奈 — You are receiving this because you authored...
上次看完rfc6455, 写了个websocket库, 加测试代码都不到1k行代码, 超级迷你. 现在比较头疼写大量测试代码, 可有好的测试case, 我移值下
优秀青年.
恩, 已发送.
高手寂寞?我最近太忙了,天天调试流式识别,不然可以把你现在玩rpc和异步io库的撸出火花来。 ---原始邮件--- 发件人: ***@***.***> 发送时间: 2021年8月19日(周四) 下午4:19 收件人: ***@***.***>; 抄送: ***@***.******@***.***>; 主题: Re: [antlabs/httparser] Execute形参讨论 (#5) 哎,太寂寞了。 — You are receiving this because you authored the thread. Reply to this...
> > 高手寂寞?我最近太忙了,天天调试流式识别,不然可以把你现在玩rpc和异步io库的撸出火花来。 > > […](#) > > ---原始邮件--- 发件人: _**@**_._**> 发送时间: 2021年8月19日(周四) 下午4:19 收件人: _**@**_.**_>; 抄送: _**@**_._**_**@**_.**_>; 主题: Re: [antlabs/httparser] Execute形参讨论 (#5) 哎,太寂寞了。 — You are receiving this because...