RabbitMQ节点JS验证用户ID

问题描述 投票:0回答:1

我使用RabbitMQ,SocketIO和MongoDB为我的应用创建私人消息。计划是当新用户注册时,应用为该用户创建新的唯一RabbitMQ队列,使该用户能够在脱机时获取消息。因此,用户通过SocketIO发送消息,并将消息传递给RabbitMQ Publisher,然后当消费者在线时,他会收到该消息。现在我的问题是如何设置来自sendToQueue(Publisher)函数的验证用户ID,以便以后能够从消费函数中读取发件人ID?

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 }
  );
};
javascript node.js socket.io rabbitmq amqp
1个回答
1
投票

我锻炼了...

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

这将发送带有userId信息和消息时间戳的标头

© www.soinside.com 2019 - 2024. All rights reserved.