diff --git a/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/DefaultMqttClientProcessor.java b/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/DefaultMqttClientProcessor.java index 7504185f..776f0983 100644 --- a/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/DefaultMqttClientProcessor.java +++ b/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/DefaultMqttClientProcessor.java @@ -78,10 +78,8 @@ public void processConAck(ChannelContext context, MqttConnAckMessage message) { } // 2. 发布连接通知 publishConnectEvent(context); - // 3. 如果 session 不存在重连时发送重新订阅,更改 ip、端口之后需要重新发送订阅 - if (!connAckVariableHeader.isSessionPresent() || MqttClient.isNeedReSub(context)) { - reSendSubscription(context); - } + // 3. 发送订阅,不管服务端是否存在 session 都发送 + reSendSubscription(context); break; case CONNECTION_REFUSED_BAD_USER_NAME_OR_PASSWORD: case CONNECTION_REFUSED_IDENTIFIER_REJECTED: diff --git a/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClient.java b/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClient.java index d8dc0b4b..14aca1c0 100644 --- a/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClient.java +++ b/mica-mqtt-client/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClient.java @@ -45,10 +45,6 @@ */ public final class MqttClient { private static final Logger logger = LoggerFactory.getLogger(MqttClient.class); - /** - * 是否需要重新订阅 - */ - private static final String MQTT_NEED_RE_SUB = "MQTT_NEED_RE_SUB"; private final TioClient tioClient; private final MqttClientCreator config; private final TioClientConfig clientTioConfig; @@ -517,7 +513,6 @@ public boolean reconnect(Node serverNode) { } try { this.context = tioClient.connect(serverNode, config.getTimeout()); - this.context.set(MQTT_NEED_RE_SUB, (byte) 1); return true; } catch (Exception e) { logger.error("mqtt client reconnect error", e); @@ -525,16 +520,6 @@ public boolean reconnect(Node serverNode) { return false; } - /** - * 是否需要重新订阅 - * - * @param context ChannelContext - * @return 是否需要重新订阅 - */ - public static boolean isNeedReSub(ChannelContext context) { - return context.getAndRemove(MQTT_NEED_RE_SUB) != null; - } - /** * 断开 mqtt 连接 *