新手测试net模块功能,返回数据长度问题
发布于 8 年前 作者 zhaixg 2918 次浏览 来自 问答

最近打算用nodejs写一个zookeeper指标监控程序,主要用zk的四字命令实现。 现在的思路是使用net.Socket().write(‘XXXX’)方法,向zk所在服务器的2181端口发送“stat”这样的四字命令。 大部分返回结果正常,但是遇到返回结果比较长的时候(如用dump查看连接信息),返回结果会丢失一部分。是net组件自身限制了返回结果的长度吗?

3 回复

是buffer限制了, buf可以设置最大长度,你去看看文档

@liujavamail 查看了一下net.Sockert().write()的文档,是这么描述的:Returns true if the entire data was flushed successfully to the kernel buffer. Returns false if all or part of the data was queued in user memory. ‘drain’ will be emitted when the buffer is again free. 看来需要加true/false判断处理。 没找到buffer长度设置的内容。。。

const buffer = require('buffer')
buffer.INSPECT_MAX_BYTES = 10000
let buf = Buffer.from('asldfjalsdfjlasdjflkasjdflasdflkjaslkdfjkalsdjfklasdjflkasdjfa')
console.log(buf)

不知道是不是这个

回到顶部