提交 9f08b3fd 编写于 作者: 如梦技术's avatar 如梦技术 🐛

代码优化

上级 6fb20678
......@@ -100,20 +100,19 @@ public final class MqttClient {
public MqttClient subscribe(MqttQoS mqttQoS, String topicFilter, IMqttClientMessageListener listener) {
// 先判断是否已经订阅过,重复订阅,直接跳出
boolean subscribed = clientSession.isSubscribed(topicFilter, mqttQoS, listener);
if (subscribed) {
return this;
if (!subscribed) {
// 没有订阅过
int messageId = MqttClientMessageId.getId();
MqttSubscribeMessage message = MqttMessageBuilders.subscribe()
.addSubscription(mqttQoS, topicFilter)
.messageId(messageId)
.build();
MqttPendingSubscription pendingSubscription = new MqttPendingSubscription(mqttQoS, topicFilter, listener, message);
Boolean result = Tio.send(context, message);
logger.info("MQTT Topic:{} mqttQoS:{} messageId:{} subscribing result:{}", topicFilter, mqttQoS, messageId, result);
pendingSubscription.startRetransmitTimer(executor, (msg) -> Tio.send(context, message));
clientSession.addPaddingSubscribe(messageId, pendingSubscription);
}
// 没有订阅过
int messageId = MqttClientMessageId.getId();
MqttSubscribeMessage message = MqttMessageBuilders.subscribe()
.addSubscription(mqttQoS, topicFilter)
.messageId(messageId)
.build();
MqttPendingSubscription pendingSubscription = new MqttPendingSubscription(mqttQoS, topicFilter, listener, message);
Boolean result = Tio.send(context, message);
logger.info("MQTT Topic:{} mqttQoS:{} messageId:{} subscribing result:{}", topicFilter, mqttQoS, messageId, result);
pendingSubscription.startRetransmitTimer(executor, (msg) -> Tio.send(context, message));
clientSession.addPaddingSubscribe(messageId, pendingSubscription);
return this;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册