问题标签 [aedes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
82 浏览

mqtt - Aedes MQTT 保留和传入消息未按顺序排列

我正在从 mosquitto MQTT 切换到 Aedes MQTT,因为它支持跨多个代理的客户端会话。我在 Aedes 代理中测试了发布消息(每秒大约 10 条消息)并订阅了该主题。我停止了订阅者并再次重新启动。我注意到传入和保留消息的顺序混合在一起。 在此处输入图像描述

当我使用 mosquitto 时不会发生这种情况。在 Aedes 中是否需要进行任何设置?谢谢你。

0 投票
1 回答
122 浏览

angular - 使用 Angular 和 Aedes 设置 MQTT 代理

我在 Stackoverflow 上找到了一个简单的 MQTT 代理示例:

Typescript / MQTT / Node - 如何从回调函数访问类成员?

但是当我尝试重新创建它时出现错误:

它说它找不到这个函数 aedes()。我的代码有什么问题?

代码:

经纪人.ts

测试.ts

main.ts

谢谢您的帮助!

0 投票
0 回答
35 浏览

websocket - 在 C/C++/Java 中扩展 Mosquitto 代理

我使用 Aedes(以前的 MoscaJS)为我在 Node JS 中的 IoT 项目创建了一个代理。

我想知道 C/C++/Java 中是否有类似的库来创建代理。

我知道有 Mosquitto 库,但是是否有任何资源可用于在 C/C++/Java 中使用 Mosquitto 创建自定义代理。

或者我们应该像在我们的项目中那样使用 Mosquitto 代理。

提前致谢。

0 投票
1 回答
289 浏览

google-cloud-platform - 部署到 Google Cloud Run 时,Websocket 上的 MQTT NodeJS 服务器中的客户端定期断开连接

我有一个在 websockets 上运行并部署到 Cloud Run 的 Node JS MQTT 服务器。此服务器使用 Aedes MQTT 代理库 ( https://github.com/moscajs/aedes )。客户端通过端口 443 连接到该服务器。一切正常,但每个客户端都会定期与 MQTT 代理断开连接(大约每 5 分钟,因为每个客户端首次连接)当服务器部署到专用机器或Google Cloud VM,仅在部署到 Google Cloud Run 时发生。

为了说明这个问题,我在 NodeJS 中编写了一个超级简单的 MQTT 服务器,它允许任何客户端连接并回显到队列“响应”客户端发送到队列“消息”的任何消息和一个 NodeJS 脚本来测试它。您可以在https://github.com/madomingo/mqtt_test/tree/main中找到完整的 2 文件项目

服务器代码是:

我还有一个 NodeJS 测试脚本,它连接到服务器并每 15 秒将日期时间发送到队列:

如果我在本地运行服务器和测试脚本,一切都按预期工作:每 15 秒,客户端将日期时间发送到队列“消息”中的服务器,然后服务器立即回显这个日期时间到队列“响应”。服务器和客户端都登录到控制台。这无限期地运行并且没有断开连接。

我发现的问题是当服务器部署到 Google Cloud Run 服务时(我已经这样做了,我得到了 url:test-mqtt-server-kdtisjwi5a-ew.a.run.app)。

在测试脚本中,我将主机 url 更改为:const host = "wss://test-mqtt-server-kdtisjwi5a-ew.a.run.app:443"。然后再次运行测试脚本,客户端连接到部署到 Cloud Run 的服务器,一段时间后,控制台按预期显示日志:

但是在第一次连接后每隔 5 分钟,客户端会意外断开连接,尽管它会立即重新连接。日志现在显示:

我没想到会断开连接,因为显然没有任何连接问题。所以我的问题是,为什么在部署到 Cloud Run 时会出现这种断开连接?并且可以避免吗?

任何帮助表示赞赏,谢谢!

0 投票
0 回答
55 浏览

server - NestJS ServerMqtt 是客户端连接吗?不是服务器吗?

我在寻找 MQTT SERVER - BROKER,但是这个ServerMqtt接缝是一个客户端。我对吗?

NestJS 有没有真正的 MQTT 代理解决方案?

0 投票
1 回答
23 浏览

javascript - MQTT TLS 连接

我想将测试 MQTT-Client 作为 MQTT-Broker 连接到我的 Node.js 应用程序。我正在使用moscajs的 aedes 库

我的 MQTT-Client 是工具“MQTT-Explorer”,这是我的 Node.js 应用程序:

我可以毫无问题地PORT=1881与 withconst server = require('net').createServer(aedes.handle)连接,我也可以与PORT=8881withconst server = require('tls').createServer(options, aedes.handle)

使用工具xca-2.4.0.msi XCA 2.4.0,我创建了一个 ca.pem 证书文件和一个证书 server_cert.pem 和一个 server_key.pem 私钥(从 ca.pem 签名)作为服务器。CA 和服务器的密钥不同:

XCA

对于我的 MQTT 客户端,ADVANCED, CERTIFICATES, SERVER CERTIFICAT (CA)我选择了 ca.pem 文件。如果我选择“加密”,它可以工作。但如果选择“验证证书”,则会出现错误:主机名/IP 与证书的替代名称不匹配:IP:127.0.0.1 不在证书列表中

MQTT 浏览器

不幸的是,我不知道我做错了什么,在此先感谢:(