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'
事件(所以不要这样做)。