HiveMQ Mqtt 客户端
HiveMQ Mqtt Client
我正在尝试连接到我们的本地 MQTT 代理。
我创建客户端:
Mqtt5AsyncClient client = Mqtt5Client.builder()
.serverHost(connectionConfig.getIp())
.serverPort(1883)
.automaticReconnectWithDefaultConfig()
.identifier(connectionConfig.getClientID())
.addConnectedListener(context -> isConnected = true)
.addDisconnectedListener(context -> isConnected = false)
.buildAsync();
后来我尝试打开连接:
private void openConnection()
{
logger.info("openConnection() start");
client.connectWith()
.simpleAuth()
.username(connectionConfig.getUser())
.password(connectionConfig.getPassword().getBytes())
.applySimpleAuth()
.send()
.whenComplete((connAck, throwable) ->
{
if (throwable != null)
{
logger.error("connect error");
logger.error("couldn't connect to broker={}", throwable);
} else
{
logger.info("mqtt client connected");
subscribe();
}
});
logger.info("openConnection() end");
}
我正在等待 whenComplete 给我一些结果,但没有任何反应。在日志中我只得到这个:
13:00:53.375 [Thread-0] INFO mqtt.MqttHiveClient - openConnection() start
13:00:55.582 [Thread-0] INFO mqtt.MqttHiveClient - openConnection() end
我应该以某种不同的方式捕获异常吗?
即使我改变:
.serverHost(connectionConfig.getIp())
出了点问题:
.serverHost("asdž)
没有抛出任何东西。
我删除了以下行:
.automaticReconnectWithDefaultConfig()
我现在在尝试连接时抛出异常。看起来,如果您启用了 automaticReconnect,它会尝试重新连接而不抛出异常。
连接失败的原因是我使用的是 tcp://127.0.0.1 而不是 127.0.0.1。
我正在尝试连接到我们的本地 MQTT 代理。
我创建客户端:
Mqtt5AsyncClient client = Mqtt5Client.builder()
.serverHost(connectionConfig.getIp())
.serverPort(1883)
.automaticReconnectWithDefaultConfig()
.identifier(connectionConfig.getClientID())
.addConnectedListener(context -> isConnected = true)
.addDisconnectedListener(context -> isConnected = false)
.buildAsync();
后来我尝试打开连接:
private void openConnection()
{
logger.info("openConnection() start");
client.connectWith()
.simpleAuth()
.username(connectionConfig.getUser())
.password(connectionConfig.getPassword().getBytes())
.applySimpleAuth()
.send()
.whenComplete((connAck, throwable) ->
{
if (throwable != null)
{
logger.error("connect error");
logger.error("couldn't connect to broker={}", throwable);
} else
{
logger.info("mqtt client connected");
subscribe();
}
});
logger.info("openConnection() end");
}
我正在等待 whenComplete 给我一些结果,但没有任何反应。在日志中我只得到这个:
13:00:53.375 [Thread-0] INFO mqtt.MqttHiveClient - openConnection() start
13:00:55.582 [Thread-0] INFO mqtt.MqttHiveClient - openConnection() end
我应该以某种不同的方式捕获异常吗?
即使我改变:
.serverHost(connectionConfig.getIp())
出了点问题:
.serverHost("asdž)
没有抛出任何东西。
我删除了以下行:
.automaticReconnectWithDefaultConfig()
我现在在尝试连接时抛出异常。看起来,如果您启用了 automaticReconnect,它会尝试重新连接而不抛出异常。
连接失败的原因是我使用的是 tcp://127.0.0.1 而不是 127.0.0.1。