kaazing publishBasic передает данные json и перехватывает их в node.js

kaazing publishBasic передает данные json и перехватывает их в node.js

Ниже приведен код для публикации данных в RabbitMQ через каразинг 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);

Вот код для перехвата данных в 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 и получить этот json в node.js

любая помощь будет высоко оценена.

1 ответ

Решение

Просто используйте 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);
})
Другие вопросы по тегам