当编写Node.js代理服务器时,我注意到数据可能在数据被写入另一个套接字端之前多次进入我的代理。每次收到数据时,我都会调用socket.write();... 但是由于发送的异步性质,我不确定数据传输的顺序是否由Node.js保证与我安排的写入顺序相同。有人知道在这种情况下Node.js的行为吗?如果顺序不能保证,则必须缓冲数据,直到我收到成功发送回调。
net.Socket 具有 socket.write() 总是可用的特性。这是为了帮助用户快速启动。计算机并不能始终跟上写入套接字的数据量 - 网络连接可能太慢了。Node.js 将内部队列中写入套接字的数据,并在可能的时候通过线路发送出去。(在内部,它在套接字文件描述符上轮询可写性)