List of usage examples for io.netty.handler.codec.mqtt MqttMessageType UNSUBSCRIBE
MqttMessageType UNSUBSCRIBE
To view the source code for io.netty.handler.codec.mqtt MqttMessageType UNSUBSCRIBE.
Click Source Link
From source file:io.vertx.mqtt.impl.MqttClientImpl.java
License:Apache License
/** * See {@link MqttClient#unsubscribe(String, Handler)} )} for more details *///from ww w . java 2 s. c o m @Override public MqttClient unsubscribe(String topic, Handler<AsyncResult<Integer>> unsubscribeSentHandler) { MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.UNSUBSCRIBE, false, AT_LEAST_ONCE, false, 0); MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(nextMessageId()); MqttUnsubscribePayload payload = new MqttUnsubscribePayload(Stream.of(topic).collect(Collectors.toList())); io.netty.handler.codec.mqtt.MqttMessage unsubscribe = MqttMessageFactory.newMessage(fixedHeader, variableHeader, payload); this.write(unsubscribe); if (unsubscribeSentHandler != null) { unsubscribeSentHandler.handle(Future.succeededFuture(variableHeader.messageId())); } return this; }
From source file:org.thingsboard.mqtt.MqttClientImpl.java
License:Apache License
private void checkSubscribtions(String topic, Promise<Void> promise) { if (!(this.subscriptions.containsKey(topic) && this.subscriptions.get(topic).size() != 0) && this.serverSubscriptions.contains(topic)) { MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.UNSUBSCRIBE, false, MqttQoS.AT_LEAST_ONCE, false, 0); MqttMessageIdVariableHeader variableHeader = getNewMessageId(); MqttUnsubscribePayload payload = new MqttUnsubscribePayload(Collections.singletonList(topic)); MqttUnsubscribeMessage message = new MqttUnsubscribeMessage(fixedHeader, variableHeader, payload); MqttPendingUnsubscription pendingUnsubscription = new MqttPendingUnsubscription(promise, topic, message);/*from w ww. java 2 s .co m*/ this.pendingServerUnsubscribes.put(variableHeader.messageId(), pendingUnsubscription); pendingUnsubscription.startRetransmissionTimer(this.eventLoop.next(), this::sendAndFlushPacket); this.sendAndFlushPacket(message); } else { promise.setSuccess(null); } }