问题标签 [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.
android - 飞行模式后触发 HiveMQ 异常,会话因连接关闭而过期
我已经在后台线程中成功实现了 HiveMQ,但是在激活飞行模式后出现了一个小问题。日志显示了原因,但我认为缺少一些东西,我看不到缺少的错误处理程序在哪里。
日志:
实现代码:
肯定缺少一些东西,但问题是我应该在哪里处理断开连接事件。
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 Indication
TLS 扩展,Milestone 1.1.3 使用。我们在 HAProxy 配置中使用交换机的 SNI 信息。由于目前我没有看到任何解决方法,并且此功能在 MQTT 订阅者中并不重要,我将等待 HiveMQ 客户端的下一个版本。
感谢所有参与者的想法和提示!
mqtt - 持久会话在 MQTT 中如何工作?
我将 MQTT 与 QOS 1 一起使用。
我有一个消费者和一个生产者。它们相互通信(HiveMQ作为客户端)。他们使用VerneMQ作为代理。我使用持久性会话。
如果消费者离线,后来又上线,他应该成为他离线的所有消息。但这只有在消费者在另一台计算机上并且我不停止微服务但我关闭 WiFi 然后再打开时才有效。但是,如果我关闭了一个微服务,然后重新启动它,它就不适用于离线消息。
如果我再次启动微服务,我认为这就是它再次订阅该主题的原因。是这个原因吗?或不?
更新:我刚刚在消费者第二次开始时没有订阅就对其进行了测试。那也行不通。所以订阅并不是消费者收不到消息的原因。
rabbitmq - RabbitMQ、Vernemq 和 HiveMQ - 分发和 HA
我正在尝试为我正在做的一个项目挑选一个。
从文档中完全不清楚 HA 是如何在所有这些中工作的,除了 RabbitMQ,它指出传入的请求将始终找到到达最初创建相关队列的节点的方式。含义如果我想发布到由 Node1 创建但最终在 Node2 发出请求的 QueueA,我将在内部路由到 Node2。另一方面,我正在寻找一个真正的分布式解决方案,在该解决方案中,我能够处理任何节点,而无需在内部重新路由我的请求,并从中得到答案。
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 时延迟如此之多的原因。
java - 如何使用 flespi 连接和发布 Java Hive MQTTClient?
flespi.io 使用身份验证令牌作为用户名,如果需要,您也可以将令牌设置为密码。如何使用 HiveMQ Java 实现连接到 flespi?
我得到错误:
node.js - 无法连接到远程服务器上的 HiveMQ
我通过 HiveMQ 在远程服务器上运行了我自己的 MQTT 代理。我设置了 Nginx,仪表板在http://104.251.210.224上工作正常。但我无法通过发布者或订阅者连接到它。在我以某种方式连接到 HiveMQ 沙箱之前,例如 mqtt://broker.hivemq.com:1883 但我无法在自己的服务器上执行此操作。我应该怎么办?
HiveMQ 日志
Ngnix
订户
apache-kafka - HIVEMQ-KAFKA 扩展
我将 HIVEMQ-KAFKA 扩展的文件夹复制到 HIVEMQ 扩展文件夹,但它给了我这个错误:
apache-kafka - HiveMQ 扩展的 Kafka 集群 ID
我在一台机器上设置了一个 3 节点的 Kafka 和 Zookeeper 集群。现在我需要我的 HiveMQ 扩展的集群 ID。
当 Kafka 启动时,日志会提供一个长字符串的集群 id。
我使用了那个id,但它真的不起作用。