我正在尝试学习RabbitMQ。我使用的是从教程中获得的以下代码:
出版商.js:
const amqp = require("amqplib/callback_api");
amqp.connect(`amqp://localhost`, (err, connection) => {
if (err) throw err;
connection.createChannel((err, channel) => {
const queueName = 'queue';
const message = 'This is the message to send'
channel.assertQueue(queueName, {
durable:false,
});
channel.sendToQueue(queueName, Buffer.from(message));
console.log('Message: ' + message);
setTimeout(()=>{
connection.close();
}, 1000);
});
});
当我在CLI中使用node运行publisher.js时,我收到以下错误:
Error: connect ECONNREFUSED ::1:5672
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) {
errno: -61,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '::1',
port: 5672
}
我在期待:
- 包含以下消息的控制台日志
- 消息也应添加到队列中
是TCP连接还是防火墙问题?如果是,我该如何修复?
1条答案
按热度按时间csbfibhn1#
我现在有一个类似的问题,我有一个docker容器有rabbitmq服务,另一个有koa服务器生成rabbitmq消息,还有一个有rabbitmq工作代码.问题是koa服务器连接很好rabbitmq,工作者抛出了和你一样的错误,尝试了一段时间后,我可以让它在连接到工作队列之前休眠5秒。所以...这是rabbitmq服务启动不正确的问题。但是我仍然不知道实际的问题是什么,因为我在docker-compose中有一个依赖于worker服务的rabbitmq服务,我知道这不是一个礼貌的回答,但是也许它可以帮助您找到问题的原因。