Mqtt HiveMQ Java阻止客户端订阅服务器未使用任何消息
我正在使用HiveMQ Java客户端连接到HiveMQ代理。阻止客户端订阅服务器未使用任何消息。使用MQTTBox,发布和订阅工作正常。这是代码。我在跟踪 Maven依赖项:Mqtt HiveMQ Java阻止客户端订阅服务器未使用任何消息,mqtt,hivemq,Mqtt,Hivemq,我正在使用HiveMQ Java客户端连接到HiveMQ代理。阻止客户端订阅服务器未使用任何消息。使用MQTTBox,发布和订阅工作正常。这是代码。我在跟踪 Maven依赖项: <!-- MQTT Client --> <dependency> <groupId>com.hivemq</groupId> <artifactId>hivemq-mqtt-client</artifactId
<!-- MQTT Client -->
<dependency>
<groupId>com.hivemq</groupId>
<artifactId>hivemq-mqtt-client</artifactId>
<version>1.0.0</version>
</dependency>
com.hivemq
hivemq mqtt客户端
1.0.0
我错过什么了吗?任何指针都会非常有用。您必须先订阅,然后才能接收消息 Publishes.receive是一个阻塞操作,因此它会等待直到收到消息。 您是在接收操作后订阅的。 你应该这样做:
Mqtt3BlockingClient client = Mqtt3Client.builder()
.identifier("sub")
.serverHost("hostaddress")
.serverPort(1883)
.buildBlocking();
client.connect();
try (final Mqtt3BlockingClient.Mqtt3Publishes publishes =
client.publishes(MqttGlobalPublishFilter.ALL)) {
client.subscribeWith().topicFilter("test/topic").qos(MqttQos.AT_LEAST_ONCE).send();
publishes.receive(1, TimeUnit.SECONDS).ifPresent(System.out::println);
}
Mqtt3BlockingClient client = Mqtt3Client.builder()
.identifier("sub")
.serverHost("hostaddress")
.serverPort(1883)
.buildBlocking();
client.connect();
try (final Mqtt3BlockingClient.Mqtt3Publishes publishes =
client.publishes(MqttGlobalPublishFilter.ALL)) {
client.subscribeWith().topicFilter("test/topic").qos(MqttQos.AT_LEAST_ONCE).send();
publishes.receive(1, TimeUnit.SECONDS).ifPresent(System.out::println);
}