问题标签 [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 回答
1627 浏览

java - 如何使用 java 客户端同时发布 MQTT 消息?

我正在尝试使用 5 个 java 客户端同时发布 MQTT 消息,以便每个 java 客户端同时将特定主题的 1000 条消息发布到 MQTT 代理(HIVEMQ)

我打开了多个线程,每个线程创建一个 mqtt 客户端并使用 ssl 连接到代理并尝试同时发布 1000 条消息,正在发送消息但所有连接都没有成功连接到代理,我不断收到异常

我希望所有客户端都能成功连接到代理并发布消息,无一例外

0 投票
1 回答
235 浏览

java - 如何修复 DaggerSingletonComponent 未在 HiveMQ(MQTT 协议)中解析

我正在尝试首先设置创建客户端以测试 MQTT 是否可以正常工作,然后我将实现 connect() 方法。我下载了最新版本的 HiveMQ(用 Java 完成的开源 MQTT 实现),在将项目正确导入为 Eclipse 中的 Gradle 构建并使用 GIT 后,我收到了一条错误消息。它说“DaggerSingletonComponent 无法解析”。我的程序根本无法运行。

我下载的开源链接:https ://github.com/hivemq/hivemq-mqtt-client

我尝试手动编辑构建文件以查看依赖项中是否有一些代码遗漏了匕首,但没有。

错误消息:DaggerSingletonComponent 无法解析

0 投票
1 回答
154 浏览

java - 如何使用 Gradle 将 HiveMQ 客户端作为依赖项添加到 HiveMQ 社区版?

我想将 HiveMQ 客户端和 HiveMQ 社区版(代理的实现)结合到一个项目中。我尝试将 HiveMQ 客户端作为依赖项添加到 Hive MQ 社区版(代理)中的 build.gradle 文件。它能够成功构建,但我不确定我是否做得正确。当我尝试在 Community Edition 中引用客户端类时,它给了我错误。我错过了什么吗?我希望能够将客户端项目放入代理社区版中,并能够创建一个客户端并访问我在 HiveMQ 客户端中可以访问的所有类。我留下了 HiveMQ 客户端网站的说明、链接以及 build.gradle 文件看起来像 HiveMQ 社区版的内容。

我得到的错误:无法解析导入 com.hivemq.client(发生在引用 HiveMQ 客户端项目中任何内容的所有导入上)

链接到 HiveMQ GitHub:

https://github.com/hivemq/hivemq-mqtt-client

https://github.com/hivemq/hivemq-community-edition

在此处输入图像描述

米

在此处输入图像描述

Main.Java 中产生错误的代码

0 投票
1 回答
1019 浏览

java - 如何在 HiveMQ Client 中获取客户端连接信息?(MQTT)

我正在编写一个主类,它将创建一些客户端并测试它们的订阅和发布。我想显示客户端连接的信息,例如连接的数据和时间、clientId、用于连接的 clientIP,无论它们是否正常连接。我不熟悉使用像 Logger 这样的工具,所以我不确定我会如何做到这一点。我留下了 HiveMQ 社区版(代理)和客户端的链接。我想在 HiveMQ 客户端项目的主类中显示此信息,但社区版中有一个名为 event.log 的日志文件,其中包含我想要显示的信息类型。我在下面留下了一张图片。

HiveMQ:

https://github.com/hivemq/hivemq-community-edition https://github.com/hivemq/hivemq-mqtt-client

hivemq-community-edition 中有一个 event.log 文件,其中包含我想要显示的信息。它是在我将项目构建为 Gradle 项目时生成的,因此除非您将其导入 Eclipse 并使用 Gradle 内置,否则无法找到它,因此我留下了它的屏幕截图。

事件簿

HiveMQ 客户端主类中的代码:

0 投票
1 回答
349 浏览

java - 如何打印 HiveMQ 客户端中的所有主题?(MQTT)

有没有办法打印 HiveMQ 代理存储的所有主题?我想在 HiveMQ 客户端的主类中打印出客户端连接到的所有主题以进行测试。我已经为 HiveMQ 客户端和社区(代理)留下了链接。

HiveMQ:

https://github.com/hivemq/hivemq-community-edition https://github.com/hivemq/hivemq-mqtt-client

我的 HiveMQ 客户端主类中的代码:

0 投票
1 回答
1307 浏览

java - 如何在 HiveMQ 客户端中接收多条消息?(MQTT)

我试图弄清楚如何使用相同的 try catch 块在 HiveMQ 客户端中接收多条消息,即使使用不同的客户端也是如此。我按照这个例子:

https://github.com/mqtt-bee/mqtt-bee-examples/blob/master/mqtt-3-blocking/src/main/java/org/mqttbee/examples/mqtt3blocking/Application.java

上面的示例适用于一个客户端和一个发布和订阅,但如果可能的话,我想在 try catch 的同一块中执行多个这些操作。

我得到的输出:

客户端 1 已连接

客户端 2 已连接

client1 已订阅

客户 1 已发布

最近好吗!

client2 已订阅

客户端2已发布

没有收到消息

客户端 1 断开连接

客户端 2 断开连接

我想要的输出:

客户端 1 已连接

客户端 2 已连接

client1 已订阅

客户 1 已发布

最近好吗!

client2 已订阅

客户端2已发布

第二条消息:P

客户端 1 断开连接

客户端 2 断开连接

0 投票
2 回答
95 浏览

java - 如何修复 HiveMQ 客户端中未定义的 MqttChannelInitializer 构造函数?

我使用的是 HiveMQ 客户端 1.0.1 版,但我决定更新到最近发布的 1.1 版。我完全从头开始,将项目作为 Gradle 项目导入并尝试构建。只有在忽略了一些失败的测试之后,构建才能工作。我在 3 个不同的类中遇到 3 个错误。我意识到这可能与 Dagger 依赖注入工具有关,并且我已经成功构建了项目并将目录添加build/generated/source/apt/main/到了我的构建路径中,正如我之前的堆栈帖子所指出的那样,我遇到了找不到 DaggerSingletonComponent 的问题:如何修复DaggerSingletonComponent 在 HiveMQ(MQTT 协议)中未解析. 这似乎是一个新问题,我不确定出了什么问题。我尝试按项目重建,但错误仍然存​​在。我在下面留下了一些屏幕截图以及具体错误。

HiveMQ:

https://github.com/hivemq/hivemq-community-edition

https://github.com/hivemq/hivemq-mqtt-client

错误:

构造函数 MqttChannelInitializer(MqttClientConfig, MqttConnAckFlow, MqttEncoder, MqttConnectHandler, MqttDisconnectHandler, MqttAuthHandler, Lazy) 未定义

构造函数 MqttSession(MqttClientConfig, MqttSubscriptionHandler, MqttIncomingQosHandler, MqttOutgoingQosHandler) 未定义

ConnectionModule 类型中的方法 provideBootstrap(NettyEventLoopProvider, MqttChannelInitializer) 不适用于参数 (MqttClientConfig, NettyEventLoopProvider, MqttChannelInitializer)

截图:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
1917 浏览

java - 如何在 Java 中正确使用 wait() 和 notify()?(HiveMQ 客户端)

我使用 HiveMQ 客户端(Java 中的 MQTT 开源实现)编写了一个程序,其中涉及使用两个多线程客户端。一个客户端被指定为发布者,另一个被指定为订阅者(我知道我可以同一个客户端既可以发布也可以订阅)。我正在尝试设计一个测试,发布者向客户端发送 100 条消息。目标是计算发送和接收所有消息所需的时间。我意识到如果我想计算接收消息需要多长时间,我需要让订阅线程等到发布线程准备好发送消息。我决定使用 wait() 和 notify() 但我似乎无法正确实现它。我知道您需要使用我尝试做的相同对象,但我无法正确设计。我在两个客户端的两种运行方法的代码上添加了狙击手。CommonThread.java 实际上不是一个线程,我没有运行它,但我尝试在类之间使用它来等待()和通知(),但我错过了一些东西。

HiveMQ:

https://github.com/hivemq/hivemq-community-edition

https://github.com/hivemq/hivemq-mqtt-client

子主线程.java:

PubMainThread.java:

公共类 CommonThread {

0 投票
1 回答
55 浏览

java - 如何在 HiveMQ 客户端 (MQTT) 中获取客户端的名称?

无论如何使用一些setter方法为客户端分配一个名称并用另一种方法检索它?到目前为止,我一直在制作一些打印语句和转换的方法,所以我一直在手动将客户端的名称作为字符串传递给静态方法,例如PubSubUtility.printConnected("Subscriber1). 我已经深入研究了客户端配置类,但它不涉及名称,仅涉及服务质量等其他内容。如果没有,我可以在一个类中重写任何 .tostring() 方法来执行此操作吗?

0 投票
2 回答
2158 浏览

java - 如何使用 HiveMq-mqtt 库连接到 Mqtt3AsyncClient?

我一直在尝试在我的 Android 应用程序中使用 hivemq 实现 mqtt。尽管我使用了他们文档中的相同规格和配置,但我仍然无法建立成功的连接。

我之前可以将 paho 用于 mqtt,但如果应用程序在后台,它不适用于 android Oreo 及更高版本,因为库没有 startServiceForeground 更新。所以搬到了 HiveMq。我只是使用此处的快速入门指南尝试他们的示例应用程序。1. https://hivemq.github.io/hivemq-mqtt-client/ 2. https://www.hivemq.com/blog/mqtt-client-library-enyclopedia-hivemq-mqtt-client/ 3. https: //github.com/hivemq/hivemq-mqtt-client/blob/develop/README.md 几乎浪费了一天时间想办法连接到他们的mqtt,但是没有成功