SlowBuffer消息如果在zmq on('data'...)中使用console.log

时间:2014-02-25 15:03:56

标签: node.js zeromq

我试图理解为什么一旦我在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时会发生?

1 个答案:

答案 0 :(得分:0)

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

About Slow Buffer Class

您应该在代码中尝试的是

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

如果数据是缓冲区

,你也不能原始解析数据

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