如何使用RabbitMQ发送消息数组? 我不想单独发送每条消息。
例如:
ch.publish(ex, '', new Buffer('hello world'));
我怎么能用这样的东西:
ch.publish(ex, '', new Buffer([msg1, msg2, msg3...]));
谢谢!
答案 0 :(得分:1)
如何使用RabbitMQ发送消息数组?我不想单独发送每条消息。
你做不到。每条消息都必须单独发送。
如果您尝试按照自己的意愿行事,最终会收到一条“消息”,其中包含您要发送的所有个人消息。
如果你想创建一个看似可以做到这一点的API,只需创建一个接收消息数组的函数,循环遍历它们并一次发送一个消息。
(nodejs / amqplib)
function publishAll(ex, ...messages){
return messages.map((msg) => {
ch.publish(ex, '', msg);
});
}
var pub = publishAll("my.exchange", [msg1, msg2, msg3]);
pub.then(() => {
// run code after they are all published
});
答案 1 :(得分:0)
除了@ derick-bailey所说的,如果你需要在每条消息中发送多个变量,你总是可以用变量逗号分隔一个字符串。或者,如果您在文本中使用逗号,您可以找到一些其他符号。
答案 2 :(得分:0)
您可以像这样传递JSON:
var json = JSON.stringify(arr);
ch.publish(ex, '', new Buffer(json));
然后,消费者将解析JSON。