RabbitMQ & NodeJS

Инструкция по установке RabbitMQ тут, но для удобства можно запустить docker:

# latest RabbitMQ 3.12
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management

# -it можно заменить на -d

Примечание: доступ к веб-интерфейсу логин guest пароль guest

Пример кода для простого приложения Hello World тут

Перед запуском NodeJS на клиенте нужно установить пакет:

npm install amqplib

Создаём два файла send.js

var amqp = require('amqplib/callback_api');

// затем подключитесь к серверу RabbitMQ
amqp.connect('amqp://localhost:5672', function(error0, connection) {
    if (error0) {
        throw error0;
    }
    // Далее мы создаем канал, в котором находится большая часть API для выполнения задач:
    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)
    }, 500);
});

receive.js

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost:5672', 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, function(msg) {
            console.log(" [x] Received %s", msg.content.toString());
        }, {
            noAck: true
        });
    });
});

Полезные ссылки:

  • https://www.rabbitmq.com/download.html
  • https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html
Print Friendly, PDF & Email

Добавить комментарий