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