diff --git a/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java b/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java index 3bcf27567420155bb9f851a8c201411fac6e8043..dc24bc019fafb83a3fb1153abf4ffa88ce87a1c2 100644 --- a/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java +++ b/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java @@ -32,6 +32,7 @@ import org.tio.utils.hutool.StrUtil; import org.tio.utils.thread.pool.DefaultThreadFactory; import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import java.util.function.Consumer; /** @@ -54,7 +55,7 @@ public final class MqttClientCreator { */ private int port = 1883; /** - * 超时时间,t-io 配置,可为 null + * 超时时间,t-io 配置,可为 null,默认为:5秒 */ private Integer timeout; /** @@ -337,9 +338,11 @@ public final class MqttClientCreator { // 4. tioConfig ClientTioConfig tioConfig = new ClientTioConfig(clientAioHandler, clientAioListener, reconnConf); tioConfig.setName(this.name); - // 5. mqtt 消息最大长度 + // 5. 心跳超时时间 + tioConfig.setHeartbeatTimeout(TimeUnit.SECONDS.toMillis(this.keepAliveSecs)); + // 6. mqtt 消息最大长度 tioConfig.setReadBufferSize(this.readBufferSize); - // 6. tioClient + // 7. tioClient try { TioClient tioClient = new TioClient(tioConfig); ClientChannelContext context = tioClient.connect(new Node(this.ip, this.port), this.timeout); diff --git a/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java b/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java index ff2426a8df783dadbe562c9297c053f9215705e6..29181075a6d404686db74f5adfc3fc7d8ff2a376 100644 --- a/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java +++ b/mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerAioListener.java @@ -51,7 +51,7 @@ public class MqttServerAioListener extends DefaultAioListener { public boolean onHeartbeatTimeout(ChannelContext context, Long interval, int heartbeatTimeoutCount) { String clientId = context.getBsId(); logger.info("Mqtt HeartbeatTimeout clientId:{} interval:{} count:{}", clientId, interval, heartbeatTimeoutCount); - return true; + return false; } @Override