问题标签 [hivemq]

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 投票
1 回答
291 浏览

android - 飞行模式后触发 HiveMQ 异常,会话因连接关闭而过期

我已经在后台线程中成功实现了 HiveMQ,但是在激活飞行模式后出现了一个小问题。日志显示了原因,但我认为缺少一些东西,我看不到缺少的错误处理程序在哪里。

日志:

实现代码:

肯定缺少一些东西,但问题是我应该在哪里处理断开连接事件。

0 投票
1 回答
1740 浏览

mqtt - 为什么 HAProxy 在 TLS 握手结束时会关闭与 HiveMQ MQTT 客户端的连接?

我正在尝试与 HAProxy 实例后面的 MQTT 代理建立 TLS 连接。在握手结束时(发送了 TLS 1.2 应用程序数据),服务器意外关闭了连接。

我正在使用 Keystore 和 Truststore 形式的自签名证书。Keystore 和 Truststore 针对服务器进行了测试,例如使用 MQTTFx 和 MQTT3 Paho 客户端。

由于我必须使用共享订阅,我决定切换到 HiveMQ MQTT5 异步客户端。

以下代码说明了构建客户端并连接到服务器。

该变量connectionProperties包含有关代理和使用的密钥库的信息。

这是调试日志的一部分(经过额外调试-Djavax.net.debug=all以查看 SSL 输出)。我删除了大部分原始数据和证书信息。

在握手结束时,服务器关闭了连接。我不知道为什么会发生这种情况,并使用经过验证的证书。

我正在使用 Java 11 和 HiveMQ MQTT 客户端版本 1.1.2(最新的 maven repo)。

服务器是HAProxy,端口是8883。

如果有人对这里发生的事情以及为什么客户端没有连接到 HAProxy 后面的 MQTT 代理有任何提示或线索,我将非常感激。

HAProxy 配置

以下片段是与 TCP 连接有关的 haproxy 配置的一部分。配置遵循 VerneMQ 代理的建议。

VerneMQ 配置

我们的代理是 Docker Swarm 中的集群(!)VerneMQ MQTT 代理(https://vernemq.com/)。MQTT 5 协议通过 env 变量启用DOCKER_VERNEMQ_LISTENER__TCP__ALLOWED_PROTOCOL_VERSIONS=3,4,5。我们在端口 18883 上使用内部侦听器,该侦听器在容器外部映射到 1883。同样:此设置与 MQTTFx 和其他基于 Paho 的 MQTT3 客户端等工具一起使用

对应的docker-compose配置是:

更新:TLS 握手没问题,haproxy 找不到服务器

客户端和服务器握手后连接关闭。HAProxy 日志

我们的 haproxy 配置中有一个条件:use_backend sub_dev-broker if { ssl_fc_sni -i dev-broker.your-server.de }. 这使我们能够仅使用一个 haproxy 实例并在不同的端点(在我们的例子中为 DEV 和 TEST 服务器)之间切换。

握手后来自客户端的请求无法路由到后端服务器。HAProxy 与NOSRV. 似乎请求不包含服务器的主机名,因此 if 条件失败。

更新:HiveMQ 客户端 1.1.2 不使用 SNI

HiveMQ Client 1.1.2 不使用Server Name IndicationTLS 扩展,Milestone 1.1.3 使用。我们在 HAProxy 配置中使用交换机的 SNI 信息。由于目前我没有看到任何解决方法,并且此功能在 MQTT 订阅者中并不重要,我将等待 HiveMQ 客户端的下一个版本。

感谢所有参与者的想法和提示!

0 投票
1 回答
577 浏览

mqtt - 持久会话在 MQTT 中如何工作?

我将 MQTT 与 QOS 1 一起使用。

我有一个消费者和一个生产者。它们相互通信(HiveMQ作为客户端)。他们使用VerneMQ作为代理。我使用持久性会话。

如果消费者离线,后来又上线,他应该成为他离线的所有消息。但这只有在消费者在另一台计算机上并且我不停止微服务但我关闭 WiFi 然后再打开时才有效。但是,如果我关闭了一个微服务,然后重新启动它,它就不适用于离线消息。

如果我再次启动微服务,我认为这就是它再次订阅该主题的原因。是这个原因吗?或不?

更新:我刚刚在消费者第二次开始时没有订阅就对其进​​行了测试。那也行不通。所以订阅并不是消费者收不到消息的原因。

0 投票
2 回答
1466 浏览

rabbitmq - RabbitMQ、Vernemq 和 HiveMQ - 分发和 HA

我正在尝试为我正在做的一个项目挑选一个。

从文档中完全不清楚 HA 是如何在所有这些中工作的,除了 RabbitMQ,它指出传入的请求将始终找到到达最初创建相关队列的节点的方式。含义如果我想发布到由 Node1 创建但最终在 Node2 发出请求的 QueueA,我将在内部路由到 Node2。另一方面,我正在寻找一个真正的分布式解决方案,在该解决方案中,我能够处理任何节点,而无需在内部重新路由我的请求,并从中得到答案。

0 投票
0 回答
168 浏览

performance - 通过 Hive MQTT 代理传递的消息中的延迟问题

我在 CentOS 机器上部署了一个 Hive MQTT 服务器作为 docker(具有 8GB 存储空间)。通过模拟器,我在此服务器上的固定 MQTT 主题上按顺序发送 10k 条消息。

在 docker Hive MQTT 部署中,发送和接收最后一条消息需要 5.37 秒和 9.62 秒。

在机器上部署 Hive MQTT 时,同样的 10k 条消息需要 5.98 秒。

在这两种情况下,都存在很大的延迟问题。与其他 MQTT 服务器测量的相同延迟非常低,所有消息都在不到 2 秒的时间内收到。

请帮助了解使用 Hive MQTT 时延迟如此之多的原因。

0 投票
1 回答
224 浏览

java - 如何使用 flespi 连接和发布 Java Hive MQTTClient?

flespi.io 使用身份验证令牌作为用户名,如果需要,您也可以将令牌设置为密码。如何使用 HiveMQ Java 实现连接到 flespi?

我得到错误:

0 投票
2 回答
508 浏览

node.js - 无法连接到远程服务器上的 HiveMQ

我通过 HiveMQ 在远程服务器上运行了我自己的 MQTT 代理。我设置了 Nginx,仪表板在http://104.251.210.224上工作正常。但我无法通过发布者或订阅者连接到它。在我以某种方式连接到 HiveMQ 沙箱之前,例如 mqtt://broker.hivemq.com:1883 但我无法在自己的服务器上执行此操作。我应该怎么办?

HiveMQ 日志

Ngnix

订户

0 投票
2 回答
100 浏览

apache-kafka - HIVEMQ-KAFKA 扩展

我将 HIVEMQ-KAFKA 扩展的文件夹复制到 HIVEMQ 扩展文件夹,但它给了我这个错误:

0 投票
1 回答
65 浏览

apache-kafka - HiveMQ 扩展的 Kafka 集群 ID

我在一台机器上设置了一个 3 节点的 Kafka 和 Zookeeper 集群。现在我需要我的 HiveMQ 扩展的集群 ID。

当 Kafka 启动时,日志会提供一个长字符串的集群 id。

我使用了那个id,但它真的不起作用。

0 投票
2 回答
907 浏览

javascript - 通过 MQTT 连接 hivemq 代理

在我的 app.js 中:

我在 hivemq-cli 和 hivemq 服务器中连接,然后testTopicTest1订阅中创建一个新主题,并让另一个订阅testTopic 图1

在 hivemq-cli 中一切正常,在我的终端中:

但是当我使用 时npm start,我的网络应用程序说:Firefox 无法在 ws://localhost:1883/ 建立与服务器的连接,并且什么也不返回。

我已经遇到这个麻烦一天了,所以我很想寻求帮助。非常感谢!