Я попробовал программу hello world, используя node.js с rabbitmq pub / sub. Здесь я отправляю привет миру сообщение через публикацию и получил это сообщение в подписке. здесь проблема не в состоянии соединить rabbitmq используя ampqlib. Вот мой код
издатель:
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://username:password@000.000.0.00:15672', function (error0, connection) {
console.log('error:', error0);
console.log('connection:', connection);
if (error0) {
throw error0;
}
connection.createChannel(function (error1, channel) {
if (error1) {
throw error1;
}
var queue = 'hello';
var msg = 'Hello World!';
channel.assertQueue(queue, {
durable: false
});
channel.sendToQueue(queue, Buffer.from(msg));
console.log(" [x] Sent %s", msg);
});
setTimeout(function () {
connection.close();
process.exit(0);
}, 1000);
});
подписчик:
const observationManager = require('../src/query/graphql/resources/4_0_0/business/observation');
const MongoClient = require('mongodb');
const logger = require('../src/lib/winston')({ level: 'debug' });
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://username:password@000.000.0.00:15672', function (error0, connection) {
if (error0) {
throw error0;
}
connection.createChannel(function (error1, channel) {
if (error1) {
throw error1;
}
var queue = 'hello';
channel.assertQueue(queue, {
durable: false
});
console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queue);
channel.consume(queue, async function (msg) {
console.log('queue message:', msg);
let client = await MongoClient.connect('mongodb://localhost:27017', {
useNewUrlParser: true,
useUnifiedTopology: true
});
this.client = client;
this.db = client.db('rabbitmqdb');
await observationManager.createNewObservation(db, msg, logger);
console.log(" [x] Received %s", msg.content.toString());
}, {
noAck: true
});
});
});
Я настроил rabbitmq, и он работает, я могу войти в систему с экрана rabbitmq