Example usage for io.netty.handler.codec.mqtt MqttSubAckMessage variableHeader

List of usage examples for io.netty.handler.codec.mqtt MqttSubAckMessage variableHeader

Introduction

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

Prototype

@Override
    public MqttMessageIdVariableHeader variableHeader() 

Source Link

Usage

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

License:Apache License

private void handleSubAck(MqttSubAckMessage message) {
    MqttPendingSubscription pendingSubscription = this.client.getPendingSubscriptions()
            .remove(message.variableHeader().messageId());
    if (pendingSubscription == null) {
        return;//from   w w w.  java2  s. c  om
    }
    pendingSubscription.onSubackReceived();
    for (MqttPendingSubscription.MqttPendingHandler handler : pendingSubscription.getHandlers()) {
        MqttSubscription subscription = new MqttSubscription(pendingSubscription.getTopic(),
                handler.getHandler(), handler.isOnce());
        this.client.getSubscriptions().put(pendingSubscription.getTopic(), subscription);
        this.client.getHandlerToSubscribtion().put(handler.getHandler(), subscription);
    }
    this.client.getPendingSubscribeTopics().remove(pendingSubscription.getTopic());

    this.client.getServerSubscriptions().add(pendingSubscription.getTopic());

    if (!pendingSubscription.getFuture().isDone()) {
        pendingSubscription.getFuture().setSuccess(null);
    }
}