2015-10-13 67 views
0

我試圖使用nodejs + amqp接收器接收消息。我可以觀察到高於7f的二進制數據顯示爲ef bf bd使用AMQP接收器檢索二進制數據時出錯

var messageHandler = function (myIdx, msg) { 
    var data = new Buffer(msg.body) 
    console.log(data) 

輸入:33 01 00 00 31 00 42 00 32 00 31 00 00 00 91 10
輸出:33 01 00 00 31 00 42 00 32 00 31 00 00 00 EF BF BD 10

我認爲8位二進制流被解釋爲7位字符流。有人可以澄清這一點嗎?

回答

0

根據node-amqp10所有者的指導,我嘗試覆蓋策略以避免使用下面的代碼進行編碼/解碼邏輯,並能夠正確檢索原始數據。

var client = new AMQPClient(Policy.merge({ 
    senderLink: { 
    encoder: function(body) { return body; } 
    }, 
    receiverLink: { 
    decoder: function(body) { return body; } 
    } 
}, Policy.EventHub));