从 Intel Edison 开发板连接到 mosquitto 服务器

Connecting to mosquitto server from Intel Edison board

我正在尝试通过 运行 Intel Edison 主板上的以下脚本连接到本地安装的 Mosquitto 服务器 -

var client = mqtt.connect("ws://localhost:9001");

client.on('connect', () => {  
    console.log("connected");
})

但是从未调用连接事件或日志。请注意,当我尝试使用 -

从网页调用它时
var client = new Paho.MQTT.Client("localhost", 9001, "clientId");
client.connect(options);

这有效。

问题出在爱迪生板的连接上。有人遇到过这个问题吗?

正如评论中所讨论的那样,

Edison 上没有运行经纪人,所以你不能在URL上使用localhost作为主持人。 localhost 是环回接口的内置名称,因此始终指向代码为 运行 的机器。

您需要使用代理所在机器(笔记本电脑)的 IP 地址 运行。

如果您 运行 在具有动态 IP 配置的环境中进行所有这些操作,那么您想看看称为 mDNS/Avahi 的东西,它允许同一子网上的机器通过广播主机名在.local 域。或者将代理移动到具有静态 IP 地址和 DNS 条目的机器上。