List of usage examples for io.netty.handler.codec.mqtt MqttFixedHeader MqttFixedHeader
public MqttFixedHeader(MqttMessageType messageType, boolean isDup, MqttQoS qosLevel, boolean isRetain, int remainingLength)
From source file:com.caricah.iotracah.server.mqttserver.transform.IOTMqttTransformerImpl.java
License:Apache License
@Override public MqttMessage toServerMessage(IOTMessage internalMessage) { switch (internalMessage.getMessageType()) { case PublishMessage.MESSAGE_TYPE: PublishMessage pubMsg = (PublishMessage) internalMessage; //We generate a publish message. MqttPublishVariableHeader respVariableHeader = new MqttPublishVariableHeader(pubMsg.getTopic(), pubMsg.getMessageId());//from w w w. j a v a2 s. c om MqttFixedHeader respFixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, pubMsg.getIsDuplicate(), MqttQoS.valueOf(pubMsg.getQos()), pubMsg.getIsRetain(), 0); ByteBuf content = Unpooled.wrappedBuffer((byte[]) pubMsg.getPayload()); return MqttMessageFactory.newMessage(respFixedHeader, respVariableHeader, content); case AcknowledgeMessage.MESSAGE_TYPE: //Generate a PUBACK for qos 1 messages. AcknowledgeMessage ackMsg = (AcknowledgeMessage) internalMessage; MqttFixedHeader ackFixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, ackMsg.isDup(), MqttQoS.valueOf(ackMsg.getQos()), ackMsg.isRetain(), 0); MqttMessageIdVariableHeader msgIdVariableHeader = MqttMessageIdVariableHeader .from(ackMsg.getMessageId()); return MqttMessageFactory.newMessage(ackFixedHeader, msgIdVariableHeader, null); case PublishReceivedMessage.MESSAGE_TYPE: //We need to generate a PUBREC message to acknowledge reception of message. PublishReceivedMessage pubrec = (PublishReceivedMessage) internalMessage; MqttFixedHeader recFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREC, false, MqttQoS.valueOf(pubrec.getQos()), false, 0); msgIdVariableHeader = MqttMessageIdVariableHeader.from(pubrec.getMessageId()); return MqttMessageFactory.newMessage(recFixedHeader, msgIdVariableHeader, null); case ReleaseMessage.MESSAGE_TYPE: //We need to generate a PUBREL message to release cached message. ReleaseMessage pubrel = (ReleaseMessage) internalMessage; MqttFixedHeader relFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL, pubrel.isDup(), MqttQoS.valueOf(pubrel.getQos()), false, 0); msgIdVariableHeader = MqttMessageIdVariableHeader.from(pubrel.getMessageId()); return MqttMessageFactory.newMessage(relFixedHeader, msgIdVariableHeader, null); case CompleteMessage.MESSAGE_TYPE: //We need to generate a PUBCOMP message to acknowledge finalization of transmission of qos 2 message. CompleteMessage destroyMessage = (CompleteMessage) internalMessage; MqttFixedHeader compFixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP, false, MqttQoS.valueOf(destroyMessage.getQos()), false, 0); msgIdVariableHeader = MqttMessageIdVariableHeader.from(destroyMessage.getMessageId()); return MqttMessageFactory.newMessage(compFixedHeader, msgIdVariableHeader, null); case Ping.MESSAGE_TYPE: Ping ping = (Ping) internalMessage; //We need to generate a PINGRESP message to respond to a PINGREQ. recFixedHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, ping.isDup(), MqttQoS.valueOf(ping.getQos()), ping.isRetain(), 0); return MqttMessageFactory.newMessage(recFixedHeader, null, null); case ConnectAcknowledgeMessage.MESSAGE_TYPE: ConnectAcknowledgeMessage connAck = (ConnectAcknowledgeMessage) internalMessage; MqttFixedHeader connAckFixedHeader = new MqttFixedHeader(MqttMessageType.CONNACK, connAck.isDup(), MqttQoS.valueOf(connAck.getQos()), connAck.isRetain(), 0); MqttConnAckVariableHeader conAckVariableHeader = new MqttConnAckVariableHeader(connAck.getReturnCode()); //Todo: Raise netty codec issue for lack of codec 3.2.2.2 Session Present flag. return MqttMessageFactory.newMessage(connAckFixedHeader, conAckVariableHeader, null); case SubscribeAcknowledgeMessage.MESSAGE_TYPE: SubscribeAcknowledgeMessage subAckMsg = (SubscribeAcknowledgeMessage) internalMessage; MqttSubAckPayload payload = new MqttSubAckPayload(subAckMsg.getGrantedQos()); MqttFixedHeader subAckFixedHeader = new MqttFixedHeader(MqttMessageType.SUBACK, subAckMsg.isDup(), MqttQoS.valueOf(subAckMsg.getQos()), subAckMsg.isRetain(), 0); MqttMessageIdVariableHeader subAckVariableHeader = MqttMessageIdVariableHeader .from(subAckMsg.getMessageId()); return MqttMessageFactory.newMessage(subAckFixedHeader, subAckVariableHeader, payload); case UnSubscribeAcknowledgeMessage.MESSAGE_TYPE: UnSubscribeAcknowledgeMessage unSubAckMsg = (UnSubscribeAcknowledgeMessage) internalMessage; respFixedHeader = new MqttFixedHeader(MqttMessageType.UNSUBACK, unSubAckMsg.isDup(), MqttQoS.valueOf(unSubAckMsg.getQos()), unSubAckMsg.isRetain(), 0); MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader .from(unSubAckMsg.getMessageId()); return MqttMessageFactory.newMessage(respFixedHeader, variableHeader, null); default: /** * * Internally these are not expected to get here. * In such cases we just return a null * and log this anomaly as a gross error. * * * if(internalMessage instanceof ConnectMessage || * internalMessage instanceof SubscribeMessage || * internalMessage instanceof UnSubscribeMessage || * internalMessage instanceof DisconnectMessage || * internalMessage instanceof WillMessage ){ * } **/ return null; } }
From source file:io.crate.mqtt.netty.MqttMessages.java
License:Apache License
public static MqttMessage newPingRequest(MqttQoS qos) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PINGREQ, false, qos, false, 0); return new MqttMessage(mqttFixedHeader); }
From source file:io.crate.mqtt.netty.MqttMessages.java
License:Apache License
static MqttMessage newDisconnectMessage(MqttQoS qos) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.DISCONNECT, false, qos, false, 0); return new MqttMessage(mqttFixedHeader); }
From source file:io.crate.mqtt.protocol.MqttMessageFactory.java
static MqttMessage newPingResponse(MqttQoS qos) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, false, qos, false, 0); return new MqttMessage(mqttFixedHeader); }
From source file:io.crate.mqtt.protocol.MqttMessageFactory.java
static MqttMessage newPubAckMessage(MqttQoS qos, boolean isDup, int packetId) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBACK, isDup, qos, false, 0); MqttMessageIdVariableHeader variableHeader = MqttMessageIdVariableHeader.from(packetId); return new MqttMessage(mqttFixedHeader, variableHeader); }
From source file:io.crate.mqtt.protocol.MqttProcessorTest.java
@Test public void testConnectWithWrongMqttVersion() throws Exception { EmbeddedChannel ch = new EmbeddedChannel(); MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, false, MqttQoS.AT_LEAST_ONCE, false, 0);/*from www . ja v a2 s. com*/ MqttConnectVariableHeader variableHeader = new MqttConnectVariableHeader("connect", (byte) 1, false, false, false, (byte) 1, false, false, 60); MqttConnectPayload payload = new MqttConnectPayload("mqttClient", "someTopic", new byte[0], null, null); processor.handleConnect(ch, (MqttConnectMessage) io.netty.handler.codec.mqtt.MqttMessageFactory .newMessage(fixedHeader, variableHeader, payload)); MqttConnAckMessage response = ch.readOutbound(); assertThat(response.variableHeader().connectReturnCode(), is(MqttConnectReturnCode.CONNECTION_REFUSED_UNACCEPTABLE_PROTOCOL_VERSION)); assertFalse(response.variableHeader().isSessionPresent()); }
From source file:io.moquette.server.HazelcastListener.java
License:Open Source License
@Override public void onMessage(Message<HazelcastMsg> msg) { try {/*from ww w . j a v a2 s. c o m*/ if (!msg.getPublishingMember().equals(server.getHazelcastInstance().getCluster().getLocalMember())) { HazelcastMsg hzMsg = msg.getMessageObject(); LOG.info("{} received from hazelcast for topic {} message: {}", hzMsg.getClientId(), hzMsg.getTopic(), hzMsg.getPayload()); // TODO pass forward this information in somehow publishMessage.setLocal(false); MqttQoS qos = MqttQoS.valueOf(hzMsg.getQos()); MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, false, qos, false, 0); MqttPublishVariableHeader varHeader = new MqttPublishVariableHeader(hzMsg.getTopic(), 0); ByteBuf payload = Unpooled.wrappedBuffer(hzMsg.getPayload()); MqttPublishMessage publishMessage = new MqttPublishMessage(fixedHeader, varHeader, payload); server.internalPublish(publishMessage, hzMsg.getClientId()); } } catch (Exception ex) { LOG.error("error polling hazelcast msg queue", ex); } }
From source file:io.moquette.server.ServerLowlevelMessagesIntegrationTests.java
License:Open Source License
private static MqttConnectMessage createConnectMessage(String clientID, int keepAlive) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, false, MqttQoS.AT_MOST_ONCE, false, 0);/*from w w w. j ava2 s . c om*/ MqttConnectVariableHeader mqttConnectVariableHeader = new MqttConnectVariableHeader( MqttVersion.MQTT_3_1.protocolName(), MqttVersion.MQTT_3_1.protocolLevel(), false, false, false, 1, false, true, keepAlive); MqttConnectPayload mqttConnectPayload = new MqttConnectPayload(clientID, null, null, null, null); return new MqttConnectMessage(mqttFixedHeader, mqttConnectVariableHeader, mqttConnectPayload); }
From source file:io.moquette.spi.impl.AbstractProtocolProcessorCommonUtils.java
License:Open Source License
protected void publishQoS2ToAs(EmbeddedChannel channel, String clientId, String topic, String payload, int messageId, boolean retained) { NettyUtils.userName(channel, clientId); MqttPublishMessage publish = MqttMessageBuilders.publish().topicName(topic).retained(retained) .messageId(messageId).qos(MqttQoS.EXACTLY_ONCE) .payload(Unpooled.copiedBuffer(payload.getBytes(UTF_8))).build(); this.m_processor.processPublish(channel, publish); verifyPubrecIsReceived(channel, messageId); MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL, false, AT_LEAST_ONCE, false, 0);//from w w w. j a v a 2 s .c om MqttMessage pubRel = new MqttMessage(mqttFixedHeader, from(messageId)); this.m_processor.processPubRel(channel, pubRel); verifyPubCompIsReceived(channel, messageId); }
From source file:io.moquette.spi.impl.InternalRepublisher.java
License:Open Source License
public static MqttPublishMessage createPublishForQos(String topic, MqttQoS qos, ByteBuf message, boolean retained, int messageId) { MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBLISH, false, qos, retained, 0); MqttPublishVariableHeader varHeader = new MqttPublishVariableHeader(topic, messageId); return new MqttPublishMessage(fixedHeader, varHeader, message); }