0

kaazing publishBasic 传递 json 数据并在 node.js 中捕获它

下面是通过 kaazing AMQP 库将数据发布到 RabbitMQ 的代码

var body = new ByteBuffer();
body.putString("new_bidder", Charset.UTF8);
body.flip();

var headers = {};
publishChannel.publishBasic(body, headers, consumeExchange, "server.aa.bb", false, false);

这是在 node.js 中捕获数据的代码

q.subscribe(function (message) {
// Print messages to stdout
var msg = message.toString('UTF-8');
console.log(msg.length);
// console.log(message);
})

问题是 publishBasic 函数期望正文以字节为单位,我想传递 json 并在 node.js 中获取该 json

任何帮助将不胜感激。

4

1 回答 1

0

只需使用 JSON.stringify。

var myObject = {
     bidder : "new_bidder",
     property2 : property2_value,
};

var body = new ByteBuffer();
body.putString(JSON.stringify(myObject), Charset.UTF8);
body.flip();

publishChannel.publishBasic(body, headers, consumeExchange, "server.aa.bb", false, false);

在 Node.JS 中,您使用 JSON.parse:

q.subscribe(function (message) {
   var msg = message.toString('UTF-8'); 
   // Print messages to stdout
   console.log(msg);
   // now convert back to JSON object so you can use in your code
   var myObject = new Object();
   myObject = JSON.parse(msg);
   console.log(msg.bidder);
})
于 2012-06-29T17:39:56.453 回答