nodejs 有没有好用的解决粘包问题的库?

2020 年 10 月 12 日
 Lostbit
10135 次点击
所在节点    Node.js
58 条回复
springz
2020 年 10 月 12 日
看到标题就知道评论区盛况了,用上层协议吧,http,websocket 都行,非要用 TCP 那就自己定义下结构,最简单的定义一个起始标志位后面有多少个字节的数据,往后逐字节读到 buffer 里。
AmosAlbert
2020 年 10 月 12 日
TCP 没有粘包这个说法哈,下次注意点
正确的发帖法:nodejs 有没有好用的解决粘流问题的库
ZRS
2020 年 10 月 12 日
不样钓鱼
pabupa
2020 年 10 月 12 日
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
djoiwhud
2020 年 10 月 12 日
你都用 nodejs 了,为啥不用 websock ? websock 读一次是一个完整的包。
lewinlan
2020 年 10 月 12 日
粘包警察可真优越啊
lxilu
2020 年 10 月 13 日
还是叫乱流吧
Lostbit
2020 年 10 月 13 日
@masker 谁钓鱼?不想回答就不回答,不要说这种“脏话”,我没惹着你
Lostbit
2020 年 10 月 13 日
@neoblackcap 是需要定义协议的,header 固定,加个 body 长度,然后封装一下就行了,我是想如果有比较好用的库能帮我解决,我就不用自己写了
raptor
2020 年 10 月 13 日
粘包这个说法从开始就是个误导加错误的概念,不知道是哪个 TCP 没学好的沙雕造出来的说法……
letking
2020 年 10 月 13 日
@cl903254852 那你直接问有没有封装协议的库不好吗?跟谁学的“粘包”?
baxtergu
2020 年 10 月 13 日
固定长度消息头里写消息体的长度,读取的时候不够就缓存下来不处理,等下一个包拼起来完整了再处理
oneoyn
2020 年 10 月 13 日
netty
Lostbit
2020 年 10 月 13 日
@letking 我也是在网上的文档中看到的粘包这个词
samzhou
2020 年 10 月 13 日
这两个库配合使用很好
ByteBuffer
ExBuffer

发现这个网站论坛,吹水的人比较多,务实的少。。。
而且看到想回复你总是,连个注册登录都要 VPS 跑到 google 上去。。。
Lostbit
2020 年 10 月 14 日
@samzhou 没办法,我对这方面也是懵懂,所以“挨喷”也正常。感谢提供的库,我去研究研究
Lostbit
2020 年 10 月 14 日
@Chenamy2017 如果在协议头添加一个请求 ID 作为唯一标识,比如整个标识从 0 自增,问题是这段代码可以说是高频的,而协议头是固定大小的,请求 ID 早晚会溢出,这个有好的方法吗?
aaronlam
2020 年 10 月 30 日
[为什么 TCP 要粘我的数据包]( https://www.aaronlam.xyz/2019/04/04/why-tcp-sticky-my-packet/) 可以了解一下。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/714154

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX