NodeJs TCP客户端bufferSize调用多个`data`事件?

我只注意到在NodeJs TCP Client中有一个bufferSize ,你可以限制传入的缓冲区到TCP客户端。

所以我的问题是,如果我将客户端的bufferSize设置为1个字节,并从服务器发送16个字节,我应该得到16个不同的data事件在客户端?

您所指的bufferSize可写stream的只读属性 :

 Object.defineProperty(Socket.prototype, 'bufferSize', { get: function() { if (this._handle) { return this._handle.writeQueueSize + this._writableState.length; } } }); 

(纠正我,如果你在谈论别的东西)

如果你想控制你的客户如何接收数据,你应该设置你的stream在非stream动模式 :

 readable.on('readable', function() { var chunk; while (null !== (chunk = readable.read())) { console.log('got %d bytes of data', chunk.length); } }); 

( 见doc )

如果您只想读取5个字节,则可以传递readable.read(5) 。 该stream默认情况下将处于非stream动模式,除非您附加'data'事件(所以不要这样做)。