Example usage for io.netty.handler.codec.mqtt MqttQoS valueOf

List of usage examples for io.netty.handler.codec.mqtt MqttQoS valueOf

Introduction

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

Prototype

public static MqttQoS valueOf(int value) 

Source Link

Usage

From source file:com.caricah.iotracah.server.mqttserver.transform.IOTMqttTransformerImpl.java

License:Apache License

@Override
public MqttMessage toServerMessage(IOTMessage internalMessage) {

    switch (internalMessage.getMessageType()) {

    case PublishMessage.MESSAGE_TYPE:

        PublishMessage pubMsg = (PublishMessage) internalMessage;
        //We generate a publish message.
        MqttPublishVariableHeader respVariableHeader = new MqttPublishVariableHeader(pubMsg.getTopic(),
                pubMsg.getMessageId());/*from  w  ww.  j  a v a  2 s. c om*/

        MqttFixedHeader respFixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, pubMsg.getIsDuplicate(),
                MqttQoS.valueOf(pubMsg.getQos()), pubMsg.getIsRetain(), 0);
        ByteBuf content = Unpooled.wrappedBuffer((byte[]) pubMsg.getPayload());

        return MqttMessageFactory.newMessage(respFixedHeader, respVariableHeader, content);

    case AcknowledgeMessage.MESSAGE_TYPE:

        //Generate a PUBACK for qos 1 messages.
        AcknowledgeMessage ackMsg = (AcknowledgeMessage) internalMessage;
        MqttFixedHeader ackFixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, ackMsg.isDup(),
                MqttQoS.valueOf(ackMsg.getQos()), ackMsg.isRetain(), 0);
        MqttMessageIdVariableHeader msgIdVariableHeader = MqttMessageIdVariableHeader
                .from(ackMsg.getMessageId());
        return MqttMessageFactory.newMessage(ackFixedHeader, msgIdVariableHeader, null);

    case PublishReceivedMessage.MESSAGE_TYPE:

        //We need to generate a PUBREC message to acknowledge reception of message.
        PublishReceivedMessage pubrec = (PublishReceivedMessage) internalMessage;
        MqttFixedHeader recFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREC, false,
                MqttQoS.valueOf(pubrec.getQos()), false, 0);
        msgIdVariableHeader = MqttMessageIdVariableHeader.from(pubrec.getMessageId());
        return MqttMessageFactory.newMessage(recFixedHeader, msgIdVariableHeader, null);

    case ReleaseMessage.MESSAGE_TYPE:

        //We need to generate a PUBREL message to release cached message.
        ReleaseMessage pubrel = (ReleaseMessage) internalMessage;
        MqttFixedHeader relFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL, pubrel.isDup(),
                MqttQoS.valueOf(pubrel.getQos()), false, 0);
        msgIdVariableHeader = MqttMessageIdVariableHeader.from(pubrel.getMessageId());
        return MqttMessageFactory.newMessage(relFixedHeader, msgIdVariableHeader, null);

    case CompleteMessage.MESSAGE_TYPE:

        //We need to generate a PUBCOMP message to acknowledge finalization of transmission of qos 2 message.
        CompleteMessage destroyMessage = (CompleteMessage) internalMessage;
        MqttFixedHeader compFixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP, false,
                MqttQoS.valueOf(destroyMessage.getQos()), false, 0);
        msgIdVariableHeader = MqttMessageIdVariableHeader.from(destroyMessage.getMessageId());
        return MqttMessageFactory.newMessage(compFixedHeader, msgIdVariableHeader, null);

    case Ping.MESSAGE_TYPE:

        Ping ping = (Ping) internalMessage;
        //We need to generate a PINGRESP message to respond to a PINGREQ.
        recFixedHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, ping.isDup(),
                MqttQoS.valueOf(ping.getQos()), ping.isRetain(), 0);
        return MqttMessageFactory.newMessage(recFixedHeader, null, null);

    case ConnectAcknowledgeMessage.MESSAGE_TYPE:

        ConnectAcknowledgeMessage connAck = (ConnectAcknowledgeMessage) internalMessage;
        MqttFixedHeader connAckFixedHeader = new MqttFixedHeader(MqttMessageType.CONNACK, connAck.isDup(),
                MqttQoS.valueOf(connAck.getQos()), connAck.isRetain(), 0);
        MqttConnAckVariableHeader conAckVariableHeader = new MqttConnAckVariableHeader(connAck.getReturnCode());
        //Todo: Raise netty codec issue for lack of codec 3.2.2.2 Session Present flag.

        return MqttMessageFactory.newMessage(connAckFixedHeader, conAckVariableHeader, null);

    case SubscribeAcknowledgeMessage.MESSAGE_TYPE:

        SubscribeAcknowledgeMessage subAckMsg = (SubscribeAcknowledgeMessage) internalMessage;
        MqttSubAckPayload payload = new MqttSubAckPayload(subAckMsg.getGrantedQos());

        MqttFixedHeader subAckFixedHeader = new MqttFixedHeader(MqttMessageType.SUBACK, subAckMsg.isDup(),
                MqttQoS.valueOf(subAckMsg.getQos()), subAckMsg.isRetain(), 0);
        MqttMessageIdVariableHeader subAckVariableHeader = MqttMessageIdVariableHeader
                .from(subAckMsg.getMessageId());
        return MqttMessageFactory.newMessage(subAckFixedHeader, subAckVariableHeader, payload);

    case UnSubscribeAcknowledgeMessage.MESSAGE_TYPE:

        UnSubscribeAcknowledgeMessage unSubAckMsg = (UnSubscribeAcknowledgeMessage) internalMessage;
        respFixedHeader = new MqttFixedHeader(MqttMessageType.UNSUBACK, unSubAckMsg.isDup(),
                MqttQoS.valueOf(unSubAckMsg.getQos()), unSubAckMsg.isRetain(), 0);
        MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader
                .from(unSubAckMsg.getMessageId());
        return MqttMessageFactory.newMessage(respFixedHeader, variableHeader, null);

    default:
        /**
         *
         * Internally these are not expected to get here.
         * In such cases we just return a null
         * and log this anomaly as a gross error.
         *
         *
         * if(internalMessage instanceof ConnectMessage ||
         * internalMessage instanceof SubscribeMessage ||
         * internalMessage instanceof UnSubscribeMessage ||
         * internalMessage instanceof DisconnectMessage ||
         * internalMessage instanceof WillMessage ){
         * }
         **/

        return null;
    }

}

From source file:io.moquette.server.HazelcastListener.java

License:Open Source License

@Override
public void onMessage(Message<HazelcastMsg> msg) {
    try {//from ww w .java  2s.c  o  m
        if (!msg.getPublishingMember().equals(server.getHazelcastInstance().getCluster().getLocalMember())) {
            HazelcastMsg hzMsg = msg.getMessageObject();
            LOG.info("{} received from hazelcast for topic {} message: {}", hzMsg.getClientId(),
                    hzMsg.getTopic(), hzMsg.getPayload());
            // TODO pass forward this information in somehow publishMessage.setLocal(false);

            MqttQoS qos = MqttQoS.valueOf(hzMsg.getQos());
            MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, false, qos, false, 0);
            MqttPublishVariableHeader varHeader = new MqttPublishVariableHeader(hzMsg.getTopic(), 0);
            ByteBuf payload = Unpooled.wrappedBuffer(hzMsg.getPayload());
            MqttPublishMessage publishMessage = new MqttPublishMessage(fixedHeader, varHeader, payload);
            server.internalPublish(publishMessage, hzMsg.getClientId());
        }
    } catch (Exception ex) {
        LOG.error("error polling hazelcast msg queue", ex);
    }
}

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

License:Apache License

@Override
public void readPortable(PortableReader reader) throws IOException {
    id = reader.readInt("id");
    topicName = reader.readUTF("topicName");
    publisherId = reader.readUTF("publisherId");
    message = reader.readByteArray("message");
    qos = MqttQoS.valueOf(reader.readInt("qos"));
    isRetain = reader.readBoolean("isRetain");
}

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

License:Apache License

@Override
public void readPortable(PortableReader reader) throws IOException {
    super.readPortable(reader);

    inboundMessageKey = reader.readUTF("inboundMessageKey");
    status = Status.valueOf(reader.readByte("status"));
    qos = MqttQoS.valueOf(reader.readInt("qos"));
}

From source file:net.anyflow.lannister.packetreceiver.ConnectReceiver.java

License:Apache License

private Message newWill(String clientId, MqttConnectMessage conn) {
    if (conn.variableHeader().isWillFlag() == false) {
        return null;
    } // [MQTT-3.1.2-12]

    return new Message(-1, conn.payload().willTopic(), clientId, conn.payload().willMessage().getBytes(),
            MqttQoS.valueOf(conn.variableHeader().willQos()), conn.variableHeader().isWillRetain());
}

From source file:net.anyflow.lannister.topic.TopicSubscription.java

License:Apache License

@Override
public void readPortable(PortableReader reader) throws IOException {
    topicFilter = reader.readUTF("topicFilter");
    qos = MqttQoS.valueOf(reader.readInt("qos"));
}

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

License:Apache License

protected void send(int messageId, String topicName, int qosLevel, boolean isRetain, ByteBuf payload,
        int deliveryCount) {
    boolean redelivery = qosLevel == 0 ? false : (deliveryCount > 0);
    MqttFixedHeader header = new MqttFixedHeader(MqttMessageType.PUBLISH, redelivery, MqttQoS.valueOf(qosLevel),
            isRetain, 0);/*from w  ww .  j  a v a2 s  . co m*/
    MqttPublishVariableHeader varHeader = new MqttPublishVariableHeader(topicName, messageId);
    MqttMessage publish = new MqttPublishMessage(header, varHeader, payload);
    sendToClient(publish);
}

From source file:org.thingsboard.server.transport.mqtt.session.MqttDeviceAwareSessionContext.java

License:Apache License

public MqttQoS getQoSForTopic(String topic) {
    List<Integer> qosList = mqttQoSMap.entrySet().stream().filter(entry -> entry.getKey().matches(topic))
            .map(Map.Entry::getValue).collect(Collectors.toList());
    if (!qosList.isEmpty()) {
        return MqttQoS.valueOf(qosList.get(0));
    } else {// w w  w. jav  a2s.c  o m
        return MqttQoS.AT_LEAST_ONCE;
    }
}