是什么决定了nodejs中套接字数据事件的大小

时间:2016-11-25 03:38:23

标签: node.js sockets

我想知道当tcp套接字发出“数据”时,是什么决定了数据的大小。事件如下,thx!

    var client = new Socket(options);
    client.on('data', chunk => {}); // what determines the size of chunk?

2 个答案:

答案 0 :(得分:0)

块的大小不确定。

对于要接收的特定数量的数据,data可以用大块发出一次,或者用小块发出多次。

答案 1 :(得分:0)

当带有IP packet的{​​{1}}到达时,包含的数据将被推送到TCP segment的内部缓冲区(duplex stream){{3} }。

如果net.Socket处于流动模式,则net.Socket添加的数据将随stream.push(chunk)事件一起发送。因此,'data' 的大小与到达的chunk的数据相对应。

但是,如果流暂停然后恢复,则之后释放的块将不会与单个TCP segment中包含的数据相对应。

流内部缓冲区可以保存最高TCP segment阈值的数据。

在此处查看有关highWaterMarkbuffering的详细信息: stream.push(chunk)