List of usage examples for io.netty.handler.codec.mqtt MqttPublishVariableHeader topicName
String topicName
To view the source code for io.netty.handler.codec.mqtt MqttPublishVariableHeader topicName.
Click Source Link
From source file:com.caricah.iotracah.server.mqttserver.transform.MqttIOTTransformerImpl.java
License:Apache License
@Override public IOTMessage toIOTMessage(MqttMessage serverMessage) { MqttFixedHeader fxH = serverMessage.fixedHeader(); if (null == fxH) { return null; }//from ww w. j a v a 2 s .co m switch (fxH.messageType()) { case PUBLISH: MqttPublishMessage publishMessage = (MqttPublishMessage) serverMessage; MqttPublishVariableHeader pubVH = publishMessage.variableHeader(); ByteBuffer byteBuffer = publishMessage.payload().nioBuffer(); return PublishMessage.from(pubVH.messageId(), fxH.isDup(), fxH.qosLevel().value(), fxH.isRetain(), pubVH.topicName(), byteBuffer, true); case PUBACK: MqttPubAckMessage pubAckMessage = (MqttPubAckMessage) serverMessage; MqttMessageIdVariableHeader msgIdVH = pubAckMessage.variableHeader(); return AcknowledgeMessage.from(msgIdVH.messageId()); case PUBREC: msgIdVH = (MqttMessageIdVariableHeader) serverMessage.variableHeader(); return PublishReceivedMessage.from(msgIdVH.messageId()); case PUBREL: msgIdVH = (MqttMessageIdVariableHeader) serverMessage.variableHeader(); return ReleaseMessage.from(msgIdVH.messageId(), fxH.isDup()); case PUBCOMP: msgIdVH = (MqttMessageIdVariableHeader) serverMessage.variableHeader(); return CompleteMessage.from(msgIdVH.messageId()); case PINGREQ: case PINGRESP: return Ping.from(fxH.isDup(), fxH.qosLevel().value(), fxH.isRetain()); case CONNECT: MqttConnectMessage mqttConnectMessage = (MqttConnectMessage) serverMessage; MqttConnectVariableHeader conVH = mqttConnectMessage.variableHeader(); MqttConnectPayload conPayload = mqttConnectMessage.payload(); boolean isAnnonymousConnect = (!conVH.hasPassword() && !conVH.hasUserName()); ConnectMessage connectionMessage = ConnectMessage.from(fxH.isDup(), fxH.qosLevel().value(), fxH.isRetain(), conVH.name(), conVH.version(), conVH.isCleanSession(), isAnnonymousConnect, conPayload.clientIdentifier(), conPayload.userName(), conPayload.password(), conVH.keepAliveTimeSeconds(), ""); connectionMessage.setHasWill(conVH.isWillFlag()); connectionMessage.setRetainWill(conVH.isWillRetain()); connectionMessage.setWillQos(conVH.willQos()); connectionMessage.setWillTopic(conPayload.willTopic()); connectionMessage.setWillMessage(conPayload.willMessage()); return connectionMessage; case CONNACK: MqttConnAckMessage connAckMessage = (MqttConnAckMessage) serverMessage; MqttConnAckVariableHeader connAckVH = connAckMessage.variableHeader(); return ConnectAcknowledgeMessage.from(fxH.isDup(), fxH.qosLevel().value(), fxH.isRetain(), 20, connAckVH.connectReturnCode()); case SUBSCRIBE: MqttSubscribeMessage subMsg = (MqttSubscribeMessage) serverMessage; msgIdVH = subMsg.variableHeader(); MqttSubscribePayload subPayload = subMsg.payload(); SubscribeMessage subscribeMessage = SubscribeMessage.from(msgIdVH.messageId(), fxH.isDup(), fxH.qosLevel().value(), fxH.isRetain()); subPayload.topicSubscriptions().forEach(tSub -> { subscribeMessage.getTopicFilterList() .add(new AbstractMap.SimpleEntry<>(tSub.topicName(), tSub.qualityOfService().value())); }); return subscribeMessage; case UNSUBSCRIBE: MqttUnsubscribeMessage unSubMsg = (MqttUnsubscribeMessage) serverMessage; msgIdVH = unSubMsg.variableHeader(); MqttUnsubscribePayload unsubscribePayload = unSubMsg.payload(); return UnSubscribeMessage.from(msgIdVH.messageId(), fxH.isDup(), fxH.qosLevel().value(), fxH.isRetain(), unsubscribePayload.topics()); case DISCONNECT: return DisconnectMessage.from(false); default: return null; } }
From source file:org.apache.activemq.artemis.core.protocol.mqtt.MQTTUtil.java
License:Apache License
public static void traceMessage(MQTTSessionState state, MqttMessage message, boolean inbound) { StringBuilder log = new StringBuilder("MQTT("); if (state != null) { log.append(state.getClientId()); }/*from ww w .j av a2 s.c o m*/ if (inbound) { log.append("): IN << "); } else { log.append("): OUT >> "); } if (message.fixedHeader() != null) { log.append(message.fixedHeader().messageType().toString()); if (message.variableHeader() instanceof MqttMessageIdVariableHeader) { log.append("(" + ((MqttMessageIdVariableHeader) message.variableHeader()).messageId() + ")"); } switch (message.fixedHeader().messageType()) { case PUBLISH: MqttPublishVariableHeader publishHeader = (MqttPublishVariableHeader) message.variableHeader(); String publishPayload = ((MqttPublishMessage) message).payload().toString(StandardCharsets.UTF_8); final int maxPayloadLogSize = 256; log.append("(" + publishHeader.packetId() + ")").append(" topic=" + publishHeader.topicName()) .append(", qos=" + message.fixedHeader().qosLevel()) .append(", retain=" + message.fixedHeader().isRetain()) .append(", dup=" + message.fixedHeader().isDup()) .append(", payload=" + (publishPayload.length() > maxPayloadLogSize ? publishPayload.substring(0, maxPayloadLogSize) : publishPayload)); break; case CONNECT: MqttConnectVariableHeader connectHeader = (MqttConnectVariableHeader) message.variableHeader(); MqttConnectPayload payload = ((MqttConnectMessage) message).payload(); log.append(" protocol=(").append(connectHeader.name()).append(", ").append(connectHeader.version()) .append(")").append(", hasPassword=").append(connectHeader.hasPassword()) .append(", isCleanSession=").append(connectHeader.isCleanSession()) .append(", keepAliveTimeSeconds=").append(connectHeader.keepAliveTimeSeconds()) .append(", clientIdentifier=").append(payload.clientIdentifier()).append(", hasUserName=") .append(connectHeader.hasUserName()); if (connectHeader.hasUserName()) { log.append(", userName=").append(payload.userName()); } log.append(", isWillFlag=").append(connectHeader.isWillFlag()); if (connectHeader.isWillFlag()) { log.append(", willQos=").append(connectHeader.willQos()).append(", isWillRetain=") .append(connectHeader.isWillRetain()).append(", willTopic=") .append(payload.willTopic()); } break; case CONNACK: MqttConnAckVariableHeader connackHeader = (MqttConnAckVariableHeader) message.variableHeader(); log.append(" connectReturnCode=").append(connackHeader.connectReturnCode().byteValue()) .append(", sessionPresent=").append(connackHeader.isSessionPresent()); break; case SUBSCRIBE: for (MqttTopicSubscription sub : ((MqttSubscribeMessage) message).payload().topicSubscriptions()) { log.append("\n\t" + sub.topicName() + " : " + sub.qualityOfService()); } break; case SUBACK: for (Integer qos : ((MqttSubAckMessage) message).payload().grantedQoSLevels()) { log.append("\n\t" + qos); } break; case UNSUBSCRIBE: for (String topic : ((MqttUnsubscribeMessage) message).payload().topics()) { log.append("\n\t" + topic); } break; } logger.trace(log.toString()); } }