RabbitMQ Node JS Проверить идентификатор пользователя - PullRequest
0 голосов
/ 08 января 2020

Я использую RabbitMQ, SocketIO и MongoDB для создания личных сообщений для моего приложения. План состоит в том, чтобы, когда новый пользователь регистрируется, приложение создает новую уникальную очередь RabbitMQ для этого пользователя, причем этот пользователь может получать сообщения, когда он находится в автономном режиме. Таким образом, пользователь отправляет сообщение через SocketIO, и оно передается в RabbitMQ Publisher, а затем, когда потребитель находится в сети, он получает это сообщение. Теперь у меня вопрос, как установить валидацию идентификатора пользователя из функции sendToQueue (Publisher), чтобы позже можно было считывать идентификатор отправителя из функции потребления?

amqp.connect(CONN_URL, function(err, conn) {
  conn.createChannel(function(err, channel) {
   ch = channel;
   console.log("RabbitMQ channel created...");
  });
});


const publishToQueue = async (queueName, data) => {
  ch.sendToQueue(queueName, Buffer.from(data.message));
};

const consumeToQueue = async queueName => {
  ch.consume(
    queueName,
    function(msg) {
      return msg.content.toString();
    },
    { noAck: true }
  );
};

1 Ответ

1 голос
/ 08 января 2020

Я разобрался ...

const publishToQueue = async (queueName, data) => {
  let properties = { headers: {userId: data.to }, timestamp: Date.now() }; 
  ch.sendToQueue(queueName, Buffer.from(data.message), properties);
};

Это отправит заголовки с информацией userId, а также отметку времени сообщения

...