Example usage for io.netty.handler.codec.mqtt MqttUnsubscribeMessage MqttUnsubscribeMessage

List of usage examples for io.netty.handler.codec.mqtt MqttUnsubscribeMessage MqttUnsubscribeMessage

Introduction

In this page you can find the example usage for io.netty.handler.codec.mqtt MqttUnsubscribeMessage MqttUnsubscribeMessage.

Prototype

public MqttUnsubscribeMessage(MqttFixedHeader mqttFixedHeader, MqttMessageIdVariableHeader variableHeader,
            MqttUnsubscribePayload payload) 

Source Link

Usage

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);/* ww w  .j a  v  a 2 s. co m*/
        this.pendingServerUnsubscribes.put(variableHeader.messageId(), pendingUnsubscription);
        pendingUnsubscription.startRetransmissionTimer(this.eventLoop.next(), this::sendAndFlushPacket);

        this.sendAndFlushPacket(message);
    } else {
        promise.setSuccess(null);
    }
}

From source file:org.thingsboard.mqtt.MqttPendingUnsubscription.java

License:Apache License

void startRetransmissionTimer(EventLoop eventLoop, Consumer<Object> sendPacket) {
    this.retransmissionHandler.setHandle(
            (fixedHeader, originalMessage) -> sendPacket.accept(new MqttUnsubscribeMessage(fixedHeader,
                    originalMessage.variableHeader(), originalMessage.payload())));
    this.retransmissionHandler.start(eventLoop);
}