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

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

Introduction

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

Prototype

public MqttMessage(MqttFixedHeader mqttFixedHeader, Object variableHeader) 

Source Link

Usage

From source file:io.crate.mqtt.protocol.MqttMessageFactory.java

static MqttMessage newPubAckMessage(MqttQoS qos, boolean isDup, int packetId) {
    MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, isDup, qos, false, 0);
    MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(packetId);
    return new MqttMessage(mqttFixedHeader, variableHeader);
}

From source file:io.moquette.spi.impl.AbstractProtocolProcessorCommonUtils.java

License:Open Source License

protected void publishQoS2ToAs(EmbeddedChannel channel, String clientId, String topic, String payload,
        int messageId, boolean retained) {
    NettyUtils.userName(channel, clientId);
    MqttPublishMessage publish = MqttMessageBuilders.publish().topicName(topic).retained(retained)
            .messageId(messageId).qos(MqttQoS.EXACTLY_ONCE)
            .payload(Unpooled.copiedBuffer(payload.getBytes(UTF_8))).build();
    this.m_processor.processPublish(channel, publish);

    verifyPubrecIsReceived(channel, messageId);

    MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL, false, AT_LEAST_ONCE, false,
            0);//from  w  w w .j  a  va  2 s.c  om
    MqttMessage pubRel = new MqttMessage(mqttFixedHeader, from(messageId));
    this.m_processor.processPubRel(channel, pubRel);

    verifyPubCompIsReceived(channel, messageId);
}

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

License:Apache License

public static MqttMessage pubrec(int messageId) {
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBREC, false, MqttQoS.AT_MOST_ONCE,
            false, 2);//  w  w w.  j  a v  a  2  s.c o  m
    MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(messageId);

    return new MqttMessage(fixedHeader, variableHeader);
}

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

License:Apache License

public static MqttMessage pubrel(int messageId) {
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL, false, MqttQoS.AT_LEAST_ONCE,
            false, 2);/*from  w ww .j  a v a2 s .  c o  m*/
    MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(messageId);

    return new MqttMessage(fixedHeader, variableHeader);
}

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

License:Apache License

public static MqttMessage pubcomp(int messageId) {
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP, false, MqttQoS.AT_MOST_ONCE,
            false, 2);/*w w w .  ja va  2 s  .c  o m*/
    MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(messageId);

    return new MqttMessage(fixedHeader, variableHeader);
}

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 .ja  v  a 2  s .  c o  m*/

    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.mqtt.MqttChannelHandler.java

License:Apache License

private void handlePubrec(Channel channel, MqttMessage message) {
    MqttPendingPublish pendingPublish = this.client.getPendingPublishes()
            .get(((MqttMessageIdVariableHeader) message.variableHeader()).messageId());
    pendingPublish.onPubackReceived();//from   w w w.  j  av a 2  s .  c o  m

    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL, false, MqttQoS.AT_LEAST_ONCE,
            false, 0);
    MqttMessageIdVariableHeader variableHeader = (MqttMessageIdVariableHeader) message.variableHeader();
    MqttMessage pubrelMessage = new MqttMessage(fixedHeader, variableHeader);
    channel.writeAndFlush(pubrelMessage);

    pendingPublish.setPubrelMessage(pubrelMessage);
    pendingPublish.startPubrelRetransmissionTimer(this.client.getEventLoop().next(),
            this.client::sendAndFlushPacket);
}

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

License:Apache License

private void handlePubrel(Channel channel, MqttMessage message) {
    if (this.client.getQos2PendingIncomingPublishes()
            .containsKey(((MqttMessageIdVariableHeader) message.variableHeader()).messageId())) {
        MqttIncomingQos2Publish incomingQos2Publish = this.client.getQos2PendingIncomingPublishes()
                .get(((MqttMessageIdVariableHeader) message.variableHeader()).messageId());
        this.invokeHandlersForIncomingPublish(incomingQos2Publish.getIncomingPublish());
        incomingQos2Publish.onPubrelReceived();
        this.client.getQos2PendingIncomingPublishes()
                .remove(incomingQos2Publish.getIncomingPublish().variableHeader().messageId());
    }//from   www .j a v  a2  s  . co m
    MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP, false, MqttQoS.AT_MOST_ONCE,
            false, 0);
    MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader
            .from(((MqttMessageIdVariableHeader) message.variableHeader()).messageId());
    channel.writeAndFlush(new MqttMessage(fixedHeader, variableHeader));
}

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

License:Apache License

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

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

License:Apache License

void startPubrelRetransmissionTimer(EventLoop eventLoop, Consumer<Object> sendPacket) {
    this.pubrelRetransmissionHandler.setHandle((fixedHeader, originalMessage) -> sendPacket
            .accept(new MqttMessage(fixedHeader, originalMessage.variableHeader())));
    this.pubrelRetransmissionHandler.start(eventLoop);
}