用node开启了一个tcp的服务端。在接收数据的时候,连续发了两条命令给客户端,客户端返回两条的时候,服务端接收到的两条命令被合并了。
socket粘包问题?
自己定义协议拆包
最简单的做法,四个字节长度+一个协议包
基于TCP自定通信协议吧,最常用就是 header(body.length)+body
https://cnodejs.org/topic/58c2a8f9e0cfa8974a26118f 不过已经有类似的工具了
首先tcp避免粘包混乱,除非是客户端和服务端采用断连接的机制,必须,注意是必须定义最起码有长度标志的协议。然后强烈建议不要使用5楼的包,我已经尝试过了,并不是很好用,然后强烈推荐使用transform-stream类来做这个事情,非常简单,而且可以高度自定义。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
socket粘包问题?
自己定义协议拆包
最简单的做法,四个字节长度+一个协议包
基于TCP自定通信协议吧,最常用就是 header(body.length)+body
https://cnodejs.org/topic/58c2a8f9e0cfa8974a26118f 不过已经有类似的工具了
首先tcp避免粘包混乱,除非是客户端和服务端采用断连接的机制,必须,注意是必须定义最起码有长度标志的协议。然后强烈建议不要使用5楼的包,我已经尝试过了,并不是很好用,然后强烈推荐使用transform-stream类来做这个事情,非常简单,而且可以高度自定义。