【问题标题】:SlowBuffer Messages if using console.log in zmq on('data'...)如果在 zmq on('data'...) 中使用 console.log,则会出现 SlowBuffer 消息
【发布时间】:2014-02-25 23:22:12
【问题描述】:

我试图了解为什么我在 zmq 订阅者的 on('data') 方法中使用 console.log 后会在终端中收到这些警告/信息:

<SlowBuffer 7b 22 74 79 70 65 22 3a 22 75 70 64 61 74 65 4c 69 67 68 74 73 22 2c 22 63 6f 6e 66 69 67 22 3a 22 31 31 31 30 31 31 30 30 31 31 30 30 31 31 31 30 22 7d ...>

代码是这样的:

subscriber.on("message", function(data){
    //if (debug)
    //  console.log(data);

    let msg = JSON.parse(data);

    if (ready)
    {
        sendString(msg.config); //config is a string, not an array!
    }

}); 

如果上面的控制台语句没有被注释掉,我会收到 SlowBuffer 消息。更糟糕的是,这种连接似乎有时也会以某种方式停止。我认为这是 zmq 的核心优势之一——例如如果连接断开或变得不响应,它会尝试重新连接。

您在上面的代码中看到了任何提示或问题?再说一遍,什么是 SlowBuffer - 为什么在使用 console.log 时会出现?

【问题讨论】:

    标签: node.js zeromq


    【解决方案1】:

    你没有正确使用缓冲区方法我不相信这是 zeroMQ 模块的错误..

    About Slow Buffer Class

    您应该在代码中尝试的是

    if (debug){
     console.log(data.toString('hex'));
    }
    

    如果数据是缓冲区,您也不能原始解析数据

    在使用JSON.parse之前使用.toJSON()方法或使用.toString('utf8')使其成为字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多