Node.js 中的消息边界有多长?
如何检测node.js中的消息边界?客户端发送消息的长度为:长度+数据
。
socket.on(data)
接收一行中的所有数据。但是,我只需要先接收 2 个字节,然后接收 x
字节数据。
How can I detect the message boundary in node.js? The client sends messages with along their length: length + data
.
socket.on(data)
receives all data in one line. But, I need to receive only 2 bytes first then x
bytes data.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
tcp 套接字只是字节流,没有消息边界,您需要计算消耗的字节并将该数字与前导码中的数字进行比较。
这里有一些代码可以满足您的需要。它是用 CoffeeScript 编写的,并使用 32 位 int 来表示消息大小,因此您必须进行一些调整。
tcp sockets are just byte streams, there's no message boundary, you need to count the bytes consumed and compare this number to the one from the preamble.
here's a bit of code that does what you need. it's written in CoffeeScript, and uses 32-bit int for message size, so you'll have to adjust a bit.