public String getWillTopic() { return msg.payload().willTopic(); }
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); }
String willTopic = payload.willTopic(); byte[] willTopicBytes = willTopic != null ? encodeStringUtf8(willTopic) : EmptyArrays.EMPTY_BYTES; byte[] willMessage = payload.willMessageInBytes();
public String getWillTopic() { return msg.payload().willTopic(); }
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());
String willTopic = payload.willTopic(); byte[] willTopicBytes = willTopic != null ? encodeStringUtf8(willTopic) : EmptyArrays.EMPTY_BYTES; String willMessage = payload.willMessage();
String willTopic = payload.willTopic(); byte[] willTopicBytes = willTopic != null ? encodeStringUtf8(willTopic) : EmptyArrays.EMPTY_BYTES; byte[] willMessage = payload.willMessageInBytes();
String willTopic = msg.payload().willTopic(); String willMessage = msg.payload().willMessage(); if (msg.variableHeader().willFlag()
private static void validateConnectPayload(MqttConnectPayload expected, MqttConnectPayload actual) { assertEquals( "MqttConnectPayload ClientId mismatch ", expected.clientId(), actual.clientId()); assertEquals("MqttConnectPayload UserName mismatch ", expected.userName(), actual.userName()); assertEquals("MqttConnectPayload Password mismatch ", expected.password(), actual.password()); assertEquals("MqttConnectPayload WillMessage mismatch ", expected.willMessage(), actual.willMessage()); assertEquals("MqttConnectPayload WillTopic mismatch ", expected.willTopic(), actual.willTopic()); }
msg.payload().willTopic(), msg.payload().willMessage(), msg.variableHeader().willQos(),
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.payload().willTopic(), msg.payload().willMessage(), msg.variableHeader().willQos(),
/** * 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()); }
if (mqttConnectVariableHeader.isWillFlag()) { // 遗嘱消息标志 boolean b = doIf(mqttConnectVariableHeader, mqttConnectVariableHeader1 -> (payload.willMessage() != null) , mqttConnectVariableHeader1 -> (payload.willTopic() != null)); if (!b) { throw new ConnectionException("will message and will topic is not null"); qos(mqttConnectVariableHeader.willQos()) .willMessage(deviceId) .willTopic(payload.willTopic()) .isRetain(mqttConnectVariableHeader.isWillRetain()) .build();