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

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

Introduction

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

Prototype

public MqttPubAckMessage(MqttFixedHeader mqttFixedHeader, MqttMessageIdVariableHeader variableHeader) 

Source Link

Usage

From source file:net.anyflow.lannister.message.MessageFactory.java

License:Apache License

public static MqttPubAckMessage puback(int messageId) {
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, false, MqttQoS.AT_MOST_ONCE,
            false, 2);//from ww w. j ava  2  s  .  com
    MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(messageId);

    return new MqttPubAckMessage(fixedHeader, variableHeader);
}

From source file:org.apache.activemq.artemis.core.protocol.mqtt.MQTTProtocolHandler.java

License:Apache License

void sendPublishProtocolControlMessage(int messageId, MqttMessageType messageType) {
    MqttQoS qos = (messageType == MqttMessageType.PUBREL) ? MqttQoS.AT_LEAST_ONCE : MqttQoS.AT_MOST_ONCE;
    MqttFixedHeader fixedHeader = new MqttFixedHeader(messageType, false, qos, // Spec requires 01 in header for rel
            false, 0);/*from  ww w. ja  v a2s .co  m*/
    MqttPubAckMessage rel = new MqttPubAckMessage(fixedHeader, MqttMessageIdVariableHeader.from(messageId));
    sendToClient(rel);
}

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

License:Apache License

private void handlePublish(Channel channel, MqttPublishMessage message) {
    switch (message.fixedHeader().qosLevel()) {
    case AT_MOST_ONCE:
        invokeHandlersForIncomingPublish(message);
        break;//w w  w  . j a  v  a 2 s.com

    case AT_LEAST_ONCE:
        invokeHandlersForIncomingPublish(message);
        if (message.variableHeader().messageId() != -1) {
            MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, false,
                    MqttQoS.AT_MOST_ONCE, false, 0);
            MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader
                    .from(message.variableHeader().messageId());
            channel.writeAndFlush(new MqttPubAckMessage(fixedHeader, variableHeader));
        }
        break;

    case EXACTLY_ONCE:
        if (message.variableHeader().messageId() != -1) {
            MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBREC, false,
                    MqttQoS.AT_MOST_ONCE, false, 0);
            MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader
                    .from(message.variableHeader().messageId());
            MqttMessage pubrecMessage = new MqttMessage(fixedHeader, variableHeader);

            MqttIncomingQos2Publish incomingQos2Publish = new MqttIncomingQos2Publish(message, pubrecMessage);
            this.client.getQos2PendingIncomingPublishes().put(message.variableHeader().messageId(),
                    incomingQos2Publish);
            message.payload().retain();
            incomingQos2Publish.startPubrecRetransmitTimer(this.client.getEventLoop().next(),
                    this.client::sendAndFlushPacket);

            channel.writeAndFlush(pubrecMessage);
        }
        break;
    }
}

From source file:org.thingsboard.server.transport.mqtt.MqttTransportHandler.java

License:Apache License

public static MqttPubAckMessage createMqttPubAckMsg(int requestId) {
    MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(PUBACK, false, AT_LEAST_ONCE, false, 0);
    MqttMessageIdVariableHeader mqttMsgIdVariableHeader = MqttMessageIdVariableHeader.from(requestId);
    return new MqttPubAckMessage(mqttFixedHeader, mqttMsgIdVariableHeader);
}