如何使用RabbitMQ发送消息数组?我不想把每条消息都分开发送。
例如:ch.publish(ex, '', new Buffer('hello world'));
如何使用:
ch.publish(ex, '', new Buffer([msg1, msg2, msg3...]));
谢谢!
你可以像这样传递JSON:
var json = JSON.stringify(arr);
ch.publish(ex, '', new Buffer(json));
我如何使用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
});
除了@ derrick -bailey所说的,如果你需要在每条消息中发送多个变量,你总是可以用逗号分隔变量的字符串。或者,如果你想在文本中使用逗号,你可以找到其他有效的符号