mqtt中的节点一直保持连接状态

问题描述 投票:0回答:1

很好,我已经在 docker 桌面上安装了 node-red 和 mosquitto,但是当我尝试使用 mqtt 连接 node-red 中的 mosquitto 时,它一直保持连接并且在连接状态下没有变化。

起初在 docker 中安装了 mosquitto,我无法连接到客户端作为 mqtt.fx,但我添加了一些设置并允许了,但是当在 node-red 中使用节点“in”时,无法连接并保持这种状态。

The node in

The connection configuration

The configuration of the connection in the mqttfx client

我想要实现的是能够将 mqtt 的“in”节点连接到 mosquitto 代理。

docker mqtt node-red docker-desktop
1个回答
0
投票

当应用程序在容器中运行时,重要的是要知道每个容器都有自己的 TCP/IP 堆栈。

这意味着 127.0.0.1/localhost 总是指向运行代码的容器(每个容器都不同)

你有 2 个容器,Node-RED 和 mosquitto,当你在 Node-RED 容器中使用 127.0.0.1 时,它指向它自己,而不是两者之间共享的东西。

它在 MQTTFX 上运行,因为它在主机上运行,并且 docker 已将端口从容器映射到主机的 TCP/IP 堆栈。

要完成这项工作,您需要知道分配给 mosquitto 容器的 IP 地址或分配给主机上 docker 接口的 IP 地址。或者,如果您使用的是 docker-compose,则可以使用 mosquitto 容器的服务名称。

© www.soinside.com 2019 - 2024. All rights reserved.