我刚注意到NodeJs TCP Client中有bufferSize
,您可以将传入缓冲区限制为TCP客户端。
所以我的问题是,如果我将客户端的bufferSize
设置为1个字节并从服务器发送16个字节,我应该在客户端获得16个不同的data
事件吗?
答案 0 :(得分:2)
您所指的bufferSize
是可写流的read-only property:
Object.defineProperty(Socket.prototype, 'bufferSize', {
get: function() {
if (this._handle) {
return this._handle.writeQueueSize + this._writableState.length;
}
}
});
(如果你在谈论其他事情,请纠正我)
如果您想控制客户端接收数据的方式,您应该在non-flowing mode中设置您的信息流:
readable.on('readable', function() {
var chunk;
while (null !== (chunk = readable.read())) {
console.log('got %d bytes of data', chunk.length);
}
});
(see doc)
如果您只想读取5个字节,则可以传递readable.read(5)
。默认情况下,流将处于非流动模式,除非您附加'data'
事件(因此请勿在您的情况下执行此操作)。