public byte getWillQos() { return (byte) msg.variableHeader().willQos(); }
private static int getConnVariableHeaderFlag(MqttConnectVariableHeader variableHeader) { int flagByte = 0; if (variableHeader.hasUserName()) { flagByte |= 0x80; } if (variableHeader.hasPassword()) { flagByte |= 0x40; } if (variableHeader.isWillRetain()) { flagByte |= 0x20; } flagByte |= (variableHeader.willQos() & 0x03) << 3; if (variableHeader.isWillFlag()) { flagByte |= 0x04; } if (variableHeader.isCleanSession()) { flagByte |= 0x02; } return flagByte; }
private Session.Will createWill(MqttConnectMessage msg) { final ByteBuf willPayload = Unpooled.copiedBuffer(msg.payload().willMessageInBytes()); final String willTopic = msg.payload().willTopic(); final boolean retained = msg.variableHeader().isWillRetain(); final MqttQoS qos = MqttQoS.valueOf(msg.variableHeader().willQos()); return new Session.Will(willTopic, willPayload, qos, retained); }
public byte getWillQos() { return (byte) msg.variableHeader().willQos(); }
private void storeWillMessage(MqttConnectMessage msg, String clientId) { // Handle will flag if (msg.variableHeader().isWillFlag()) { MqttQoS willQos = MqttQoS.valueOf(msg.variableHeader().willQos()); LOG.debug("Configuring MQTT last will and testament CId={}, willQos={}, willTopic={}, willRetain={}", clientId, willQos, msg.payload().willTopic(), msg.variableHeader().isWillRetain()); byte[] willPayload = msg.payload().willMessage().getBytes(StandardCharsets.UTF_8); ByteBuffer bb = (ByteBuffer) ByteBuffer.allocate(willPayload.length).put(willPayload).flip(); // save the will testament in the clientID store WillMessage will = new WillMessage(msg.payload().willTopic(), bb, msg.variableHeader().isWillRetain(), willQos); m_willStore.put(clientId, will); LOG.debug("MQTT last will and testament has been configured. CId={}", clientId); } }
log.append(", willQos=").append(connectHeader.willQos()) .append(", isWillRetain=").append(connectHeader.isWillRetain()) .append(", willTopic=").append(payload.willTopic());
log.append(", willQos=").append(connectHeader.willQos()) .append(", isWillRetain=").append(connectHeader.isWillRetain()) .append(", willTopic=").append(payload.willTopic());
private static int getConnVariableHeaderFlag(MqttConnectVariableHeader variableHeader) { int flagByte = 0; if (variableHeader.hasUserName()) { flagByte |= 0x80; } if (variableHeader.hasPassword()) { flagByte |= 0x40; } if (variableHeader.isWillRetain()) { flagByte |= 0x20; } flagByte |= (variableHeader.willQos() & 0x03) << 3; if (variableHeader.isWillFlag()) { flagByte |= 0x04; } if (variableHeader.isCleanSession()) { flagByte |= 0x02; } return flagByte; }
private static int getConnVariableHeaderFlag(MqttConnectVariableHeader variableHeader) { int flagByte = 0; if (variableHeader.userNameFlag()) { flagByte |= 0x80; } if (variableHeader.passwordFlag()) { flagByte |= 0x40; } if (variableHeader.willRetain()) { flagByte |= 0x20; } flagByte |= (variableHeader.willQos().value() & 0x03) << 3; if (variableHeader.willFlag()) { flagByte |= 0x04; } if (variableHeader.cleanSession()) { flagByte |= 0x02; } return flagByte; }
new MqttFixedHeader(MqttMessageType.PUBLISH, false, msg.variableHeader().willQos(), msg.variableHeader().willRetain(), 0), MqttPublishVariableHeader.from(willTopic), Unpooled.wrappedBuffer(willMessage.getBytes())
msg.payload().willTopic(), msg.payload().willMessage(), msg.variableHeader().willQos(), msg.variableHeader().isWillRetain());
if (msg.variableHeader().isWillFlag()) { MqttPublishMessage willMessage = (MqttPublishMessage) MqttMessageFactory.newMessage( new MqttFixedHeader(MqttMessageType.PUBLISH, false, MqttQoS.valueOf(msg.variableHeader().willQos()), msg.variableHeader().isWillRetain(), 0), new MqttPublishVariableHeader(msg.payload().willTopic(), 0), Unpooled.buffer().writeBytes(msg.payload().willMessageInBytes())); sessionStore.setWillMessage(willMessage);
msg.payload().willTopic(), msg.payload().willMessage(), msg.variableHeader().willQos(), msg.variableHeader().isWillRetain());
msg.payload().willTopic(), msg.payload().willMessage(), msg.variableHeader().willQos(), msg.variableHeader().isWillRetain());
/** * Called during connection. * * @param connect */ void handleConnect(MqttConnectMessage connect, ChannelHandlerContext ctx) throws Exception { this.ctx = ctx; connectionEntry.ttl = connect.variableHeader().keepAliveTimeSeconds() * 1500L; String clientId = connect.payload().clientIdentifier(); session.getConnectionManager().connect(clientId, connect.payload().userName(), connect.payload().passwordInBytes(), connect.variableHeader().isWillFlag(), connect.payload().willMessageInBytes(), connect.payload().willTopic(), connect.variableHeader().isWillRetain(), connect.variableHeader().willQos(), connect.variableHeader().isCleanSession()); }
/** * Called during connection. * * @param connect */ void handleConnect(MqttConnectMessage connect, ChannelHandlerContext ctx) throws Exception { this.ctx = ctx; connectionEntry.ttl = connect.variableHeader().keepAliveTimeSeconds() * 1500L; String clientId = connect.payload().clientIdentifier(); session.getConnectionManager().connect(clientId, connect.payload().userName(), connect.payload().passwordInBytes(), connect.variableHeader().isWillFlag(), connect.payload().willMessageInBytes(), connect.payload().willTopic(), connect.variableHeader().isWillRetain(), connect.variableHeader().willQos(), connect.variableHeader().isCleanSession()); }
qos(mqttConnectVariableHeader.willQos()) .willMessage(deviceId) .willTopic(payload.willTopic()) willService.del(payload.clientIdentifier()); boolean b = doIf(mqttConnectVariableHeader, mqttConnectVariableHeader1 -> (!mqttConnectVariableHeader1.isWillRetain()), mqttConnectVariableHeader1 -> (mqttConnectVariableHeader1.willQos() == 0)); if (!b) { throw new ConnectionException("will retain should be null and will QOS equal 0");
private static void validateConnectVariableHeader( MqttConnectVariableHeader expected, MqttConnectVariableHeader actual) { assertEquals("MqttConnectVariableHeader ProtocolName mismatch ", expected.protocolName(), actual.protocolName()); assertEquals( "MqttConnectVariableHeader KeepAlive mismatch ", expected.keepAlive(), actual.keepAlive()); assertEquals("MqttConnectVariableHeader ProtocolLevel mismatch ", expected.protocolLevel(), actual.protocolLevel()); assertEquals("MqttConnectVariableHeader WillQos mismatch ", expected.willQos(), actual.willQos()); assertEquals("MqttConnectVariableHeader UserNameFlag mismatch ", expected.userNameFlag(), actual.userNameFlag()); assertEquals("MqttConnectVariableHeader PasswordFlag mismatch ", expected.passwordFlag(), actual.passwordFlag()); assertEquals( "MqttConnectVariableHeader CleanSession mismatch ", expected.cleanSession(), actual.cleanSession()); assertEquals("MqttConnectVariableHeader WillFlag mismatch ", expected.willFlag(), actual.willFlag()); assertEquals( "MqttConnectVariableHeader WillRetain mismatch ", expected.willRetain(), actual.willRetain()); }