我已经安装了 RabbitMQ docker 镜像并启动并运行它。 我的 docker 管理控制台也在 8080 端口上运行。
我使用 docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
我正在尝试运行以下 Node 代码;
var amqp = require('amqplib/callback_api');
var connection = amqp.connect('amqp://localhost:5672',function(err,conn){
console.log(conn); });
但是,conn 总是未定义的。
我试过了;
amqp://localhost:5672
amqp://localhost:15672
amqp://localhost
amqp://localhost:8080
但它们都不起作用。
我的 rabbitmq 经理说 amqp 正在监听 5672。
除了默认的 guest 帐户,我没有任何其他帐户。
我没有在管理员模式下运行 visual studio 代码。
我得到的错误是;
Error: Socket closed abruptly during opening handshake at Socket.endWhileOpening (C:\Users\sgrieger\Documents\Development\rabbitmq\node_modules\amqplib\lib\connection.js:259:17) at emitNone (events.js:111:20) at Socket.emit (events.js:208:7) at endReadableNT (_stream_readable.js:1064:12) at _combinedTickCallback (internal/process/next_tick.js:138:11) at process._tickCallback (internal/process/next_tick.js:180:9)
最佳答案
当您运行 docker 镜像时,您并没有暴露主机上的端口。您可以使用 -p
开关来做到这一点:
docker run -d --hostname my-rabbit -p 5672:5672 --name some-rabbit rabbitmq:3
关于node.js - 无法使用 Node.js 连接到我的 Docker RabbitMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996062/