【发布时间】:2019-01-30 10:32:04
【问题描述】:
我已经安装了一个 RabbitMQ docker 镜像并让它运行起来。 我的 docker 管理控制台也在 8080 端口上运行。
我使用 docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3 运行 docker
我正在尝试运行以下节点代码;
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。
除了默认访客帐户之外,我没有任何其他帐户。
我没有在管理员模式下运行 Visual Studio 代码。
我得到的错误是;
错误:打开握手期间套接字突然关闭 在 Socket.endWhileOpening (C:\Users\sgrieger\Documents\Development\rabbitmq\node_modules\amqplib\lib\connection.js:259:17) 在 emitNone (events.js:111:20) 在 Socket.emit (events.js:208:7) 在 endReadableNT (_stream_readable.js:1064:12) 在 _combinedTickCallback (内部/进程/next_tick.js:138:11) 在 process._tickCallback (internal/process/next_tick.js:180:9)
【问题讨论】:
-
你有 docker 文件吗?你用的是什么图片?如何启动 docker 镜像?
-
@RobertMoskal,是的,我有一个 docker 文件,否则我不会运行它。我今天早上得到了图像,所以它是最新的 3.7.7。 docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
-
RabbitMQ 正在侦听容器内部的 5672 端口。您必须将主机端口的端口映射到容器的端口。
docker run -d -p 5672:5672 --hostname my-rabbit --name some-rabbit rabbitmq:3 -
@Rickkwa。极好的!谢谢你。如果您想在答案中写下,我会接受。