سؤال

kaazing publishBasic pass json data and catch it in node.js

Below is the code to publish Data to RabbitMQ via kaazing AMQP librarry

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

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

Here is the code to catch the data in node.js

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

Problem is that publishBasic function expect body in bytes and i want to pass json and get that json in node.js

any help will be hightly appreciated.

هل كانت مفيدة؟

المحلول

Just use 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);

And in Node.JS, you use 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);
})
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top