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

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

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

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

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

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

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

© 2021 V2EX