AMQP Messenger
Переменные окружения
AMQP_SERVER=amqp://server_1:5672,amqp://server_2:5672
AMQP_EXCHANGE=myExchange
AMQPMessenger
const QM = await new AMQPMessenger({
servers: ['amqp://server_1:5672', 'amqp://server_2:5672'], // Если не указан, то будет использована env.AMQP_SERVER
exchange: 'myExchange', // Если не указан, то будет использована env.AMQP_EXCHANGE
ttl: 10, // Время ожидания ответа (по умолчанию) в вызовах call(...)
prefetch: 1
})
Пример использования
server.js
const QM = require('amqp-messenger');
const pingPong = data => {
console.log('ping-pong', data.content.toString());
};
const main = async function () {
const Messenger = await new QM();
Messenger.events({
ping: pingPong
});
Messenger.methods({
add( msgJson, msg ) {
return msgJson[0] + msgJson[1];
},
div( msgJson, msg ) {
return new Promise(( resolve, reject ) => {
return resolve(msgJson[0] / msgJson[1]);
});
}
});
};
main()
.then(() => {
console.log('Messenger started');
})
.catch(console.error);
client.js
const QM = require('amqp-messenger');
const main = async function () {
const Messenger = await new QM();
// simple send message
Messenger.send('ping', new Date());
Messenger.call('add', [2, 3])
.then(res1 => {
console.log('add', res1);
})
.catch(console.error);
const res2 = await Messenger.call('div', [4, 6]);
console.log('Async div:', res2);
};
main()
.then(() => {
})
.catch(console.error);