List of usage examples for io.netty.handler.codec.mqtt MqttConnAckVariableHeader isSessionPresent
public boolean isSessionPresent()
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 w w w. jav a 2 s . c om*/ 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()); } }