private static int getFixedHeaderByte1(MqttFixedHeader header) { int ret = 0; ret |= header.messageType().value() << 4; if (header.isDup()) { ret |= 0x08; } ret |= header.qosLevel().value() << 1; if (header.isRetain()) { ret |= 0x01; } return ret; }
/** * Decodes the fixed header. It's one byte for the flags and then variable bytes for the remaining length. * * @param buffer the buffer to decode from * @return the fixed header */ private static MqttFixedHeader decodeFixedHeader(ByteBuf buffer) { short b1 = buffer.readUnsignedByte(); MqttMessageType messageType = MqttMessageType.valueOf(b1 >> 4); boolean dupFlag = (b1 & 0x08) == 0x08; int qosLevel = (b1 & 0x06) >> 1; boolean retain = (b1 & 0x01) != 0; int remainingLength = 0; int multiplier = 1; short digit; int loops = 0; do { digit = buffer.readUnsignedByte(); remainingLength += (digit & 127) * multiplier; multiplier *= 128; loops++; } while ((digit & 128) != 0 && loops < 4); // MQTT protocol limits Remaining Length to 4 bytes if (loops == 4 && (digit & 128) != 0) { throw new DecoderException("remaining length exceeds 4 digits (" + messageType + ')'); } MqttFixedHeader decodedFixedHeader = new MqttFixedHeader(messageType, dupFlag, MqttQoS.valueOf(qosLevel), retain, remainingLength); return validateFixedHeader(resetUnusedFields(decodedFixedHeader)); }
public static MqttMessageType valueOf(int type) { for (MqttMessageType t : values()) { if (t.value == type) { return t; } } throw new IllegalArgumentException("unknown message type: " + type); } }
if (type == MqttMessageType.PUBLISH.value()) { byte[] bytes = new byte[0]; if (map.get("payload") != null) try { bytes )); } else if (type == MqttMessageType.PUBREL.value()) { return new Message<>( new MqttFixedHeader( ); } else { throw new IllegalArgumentException("Invalid in-flight MQTT message type: " + MqttMessageType.valueOf(type));
static MqttFixedHeader validateFixedHeader(MqttFixedHeader mqttFixedHeader) { switch (mqttFixedHeader.messageType()) { case PUBREL: case SUBSCRIBE: case UNSUBSCRIBE: if (mqttFixedHeader.qosLevel() != MqttQoS.AT_LEAST_ONCE) { throw new DecoderException(mqttFixedHeader.messageType().name() + " message must have QoS 1"); } default: return mqttFixedHeader; } }
log.append(message.fixedHeader().messageType().toString());
if(mqttFixedHeader.messageType().equals(MqttMessageType.CONNECT)){ if(!serverMqttHandlerService.login(channel, (MqttConnectMessage) mqttMessage)){ channel.close();
static MqttFixedHeader validateFixedHeader(MqttFixedHeader mqttFixedHeader) { switch (mqttFixedHeader.messageType()) { case PUBREL: case SUBSCRIBE: case UNSUBSCRIBE: if (mqttFixedHeader.qosLevel() != MqttQoS.AT_LEAST_ONCE) { throw new DecoderException(mqttFixedHeader.messageType().name() + " message must have QoS 1"); } default: return mqttFixedHeader; } }
log.append(message.fixedHeader().messageType().toString());
"Unknown message type: " + message.fixedHeader().messageType().value());
/** * Decodes the fixed header. It's one byte for the flags and then variable bytes for the remaining length. * * @param buffer the buffer to decode from * @return the fixed header */ private static MqttFixedHeader decodeFixedHeader(ByteBuf buffer) { short b1 = buffer.readUnsignedByte(); MqttMessageType messageType = MqttMessageType.valueOf(b1 >> 4); boolean dupFlag = (b1 & 0x08) == 0x08; int qosLevel = (b1 & 0x06) >> 1; boolean retain = (b1 & 0x01) != 0; int remainingLength = 0; int multiplier = 1; short digit; int loops = 0; do { digit = buffer.readUnsignedByte(); remainingLength += (digit & 127) * multiplier; multiplier *= 128; loops++; } while ((digit & 128) != 0 && loops < 4); // MQTT protocol limits Remaining Length to 4 bytes if (loops == 4 && (digit & 128) != 0) { throw new DecoderException("remaining length exceeds 4 digits (" + messageType + ')'); } return new MqttFixedHeader(messageType, dupFlag, MqttQoS.valueOf(qosLevel), retain, remainingLength); }
public static MqttMessageType valueOf(int type) { for (MqttMessageType t : values()) { if (t.value == type) { return t; } } throw new IllegalArgumentException("unknown message type: " + type); } }
public static Message createPubRelMessage(MQTTSession session, SimpleString address, int messageId) { Message message = createServerMessage(session, address, false, 1); message.putIntProperty(MQTTUtil.MQTT_MESSAGE_ID_KEY, messageId); message.putIntProperty(MQTTUtil.MQTT_MESSAGE_TYPE_KEY, MqttMessageType.PUBREL.value()); return message; }
/** * Decodes the fixed header. It's one byte for the flags and then variable bytes for the remaining length. * * @param buffer the buffer to decode from * @return the fixed header */ private static MqttFixedHeader decodeFixedHeader(ByteBuf buffer) { short b1 = buffer.readUnsignedByte(); MqttMessageType messageType = MqttMessageType.valueOf(b1 >> 4); boolean dupFlag = (b1 & 0x08) == 0x08; int qosLevel = (b1 & 0x06) >> 1; boolean retain = (b1 & 0x01) != 0; int remainingLength = 0; int multiplier = 1; short digit; int loops = 0; do { digit = buffer.readUnsignedByte(); remainingLength += (digit & 127) * multiplier; multiplier *= 128; loops++; } while ((digit & 128) != 0 && loops < 4); // MQTT protocol limits Remaining Length to 4 bytes if (loops == 4 && (digit & 128) != 0) { throw new DecoderException("remaining length exceeds 4 digits (" + messageType + ')'); } MqttFixedHeader decodedFixedHeader = new MqttFixedHeader(messageType, dupFlag, MqttQoS.valueOf(qosLevel), retain, remainingLength); return validateFixedHeader(resetUnusedFields(decodedFixedHeader)); }
public static MqttMessageType valueOf(int type) { for (MqttMessageType t : values()) { if (t.value == type) { return t; } } throw new IllegalArgumentException("unknown message type: " + type); }
public static Message createPubRelMessage(MQTTSession session, SimpleString address, int messageId) { Message message = createServerMessage(session, address, false, 1); message.putIntProperty(MQTTUtil.MQTT_MESSAGE_ID_KEY, messageId); message.putIntProperty(MQTTUtil.MQTT_MESSAGE_TYPE_KEY, MqttMessageType.PUBREL.value()); return message; }
public static SessionStore mapTransToPublishMsgBeta(NutMap store) { SessionStore sessionStore = new SessionStore(); if (store.getBoolean("hasWillMessage",false)) { String payload = store.getString("payload"); ByteBuf buf = ByteBufUtil.writeUtf8(ByteBufAllocator.DEFAULT, payload); MqttFixedHeader mqttFixedHeader = new MqttFixedHeader( MqttMessageType.valueOf(store.getInt("messageType")), store.getBoolean("isDup"), MqttQoS.valueOf(store.getInt("qosLevel")), store.getBoolean("isRetain"), store.getInt("remainingLength")); MqttPublishVariableHeader mqttPublishVariableHeader = new MqttPublishVariableHeader(store.getString("topicName"), store.getInt("packetId")); MqttPublishMessage mqttPublishMessage = new MqttPublishMessage(mqttFixedHeader, mqttPublishVariableHeader, buf); sessionStore.setWillMessage(mqttPublishMessage); } sessionStore.setChannelId(store.getString("channelId")); sessionStore.setClientId(store.getString("clientId")); sessionStore.setCleanSession(store.getBoolean("cleanSession")); return sessionStore; } }
private static int getFixedHeaderByte1(MqttFixedHeader header) { int ret = 0; ret |= header.messageType().value() << 4; if (header.isDup()) { ret |= 0x08; } ret |= header.qosLevel().value() << 1; if (header.isRetain()) { ret |= 0x01; } return ret; }
private static int getFixedHeaderByte1(MqttFixedHeader header) { int ret = 0; ret |= header.messageType().value() << 4; if (header.dup()) { ret |= 0x08; } ret |= header.qos().value() << 1; if (header.retain()) { ret |= 0x01; } return ret; }
MqttPublishVariableHeader variableHeader = (MqttPublishVariableHeader) msg.variableHeader(); MqttPublishPayload payload = (MqttPublishPayload) msg.payload(); map.put("type", String.valueOf(MqttMessageType.PUBLISH.value())); map.put("retain", BooleanUtils.toString(msg.fixedHeader().retain(), "1", "0")); map.put("qos", String.valueOf(msg.fixedHeader().qos().value())); } else if (msg.fixedHeader().messageType() == MqttMessageType.PUBREL) { MqttPacketIdVariableHeader variableHeader = (MqttPacketIdVariableHeader) msg.variableHeader(); map.put("type", String.valueOf(MqttMessageType.PUBREL.value())); map.put("version", msg.additionalHeader().version().toString()); map.put("clientId", msg.additionalHeader().clientId());