public static MqttMessage newInvalidMessage(Throwable cause) { return new MqttMessage(null, null, null, DecoderResult.failure(cause)); }
static MqttMessage pubrel(int messageID) { MqttFixedHeader pubRelHeader = new MqttFixedHeader(MqttMessageType.PUBREL, false, AT_LEAST_ONCE, false, 0); return new MqttMessage(pubRelHeader, from(messageID)); }
private void sendPubCompMessage(int messageID) { LOG.trace("Sending PUBCOMP message on channel: {}, messageId: {}", channel, messageID); MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP, false, AT_MOST_ONCE, false, 0); MqttMessage pubCompMessage = new MqttMessage(fixedHeader, from(messageID)); sendIfWritableElseDrop(pubCompMessage); }
case PUBREL: case PUBCOMP: return new MqttMessage(mqttFixedHeader, variableHeader); return new MqttMessage(mqttFixedHeader);
MqttFixedHeader pingHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, false, AT_MOST_ONCE, false, 0); MqttMessage pingResp = new MqttMessage(pingHeader); channel.writeAndFlush(pingResp).addListener(CLOSE_ON_FAILURE); break;
public static MqttMessage getMqttPubrecMessage(MqttPublishMessage message) { MqttFixedHeader fixedHeader = new MqttFixedHeader( MqttMessageType.PUBREC, message.fixedHeader().isDup(), message.fixedHeader().qosLevel(), message.fixedHeader().isRetain(), message.fixedHeader().remainingLength() ); return new MqttMessage(fixedHeader); }
public static MqttMessage getMqttPingrespMessage(MqttMessage message) { assert message.fixedHeader().messageType() == MqttMessageType.PINGREQ; MqttFixedHeader fixedHeader = new MqttFixedHeader( MqttMessageType.PINGRESP, message.fixedHeader().isDup(), message.fixedHeader().qosLevel(), message.fixedHeader().isRetain(), 0 ); return new MqttMessage(fixedHeader); }
public static MqttMessage getMqttPubrelMessage(MqttMessage message) { assert message.fixedHeader().messageType() == MqttMessageType.PUBREC; MqttFixedHeader fixedHeader = new MqttFixedHeader( MqttMessageType.PUBREL, message.fixedHeader().isDup(), message.fixedHeader().qosLevel(), message.fixedHeader().isRetain(), message.fixedHeader().remainingLength() ); return new MqttMessage(fixedHeader); }
public static MqttMessage getMqttPubcompMessage(MqttMessage message) { assert message.fixedHeader().messageType() == MqttMessageType.PUBREL; MqttFixedHeader fixedHeader = new MqttFixedHeader( MqttMessageType.PUBCOMP, message.fixedHeader().isDup(), message.fixedHeader().qosLevel(), message.fixedHeader().isRetain(), message.fixedHeader().remainingLength() ); return new MqttMessage(fixedHeader); }
protected void sendDisConnect(Channel channel){ MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.DISCONNECT,false, MqttQoS.AT_LEAST_ONCE,false,0x02); MqttMessage mqttMessage = new MqttMessage(mqttFixedHeader); channel.writeAndFlush(mqttMessage); }
@Override public void heart(Channel channel, IdleStateEvent evt) { MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PINGREQ, false, MqttQoS.AT_MOST_ONCE, false, 0); MqttMessage mqttMessage = new MqttMessage(fixedHeader); log.info("发送心跳"); channel.writeAndFlush(mqttMessage); }
/** * 回复pong消息 */ @Override public void pong(Channel channel) { if (channel.isOpen() && channel.isActive() && channel.isWritable()) { log.info("收到来自:【" + channel.remoteAddress().toString() + "】心跳"); MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PINGRESP, false, MqttQoS.AT_MOST_ONCE, false, 0); channel.writeAndFlush(new MqttMessage(fixedHeader)); } }
protected void pubRecMessage(Channel channel,int messageId) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREC,false, MqttQoS.AT_LEAST_ONCE,false,0x02); MqttMessageIdVariableHeader from = MqttMessageIdVariableHeader.from(messageId); MqttMessage mqttPubAckMessage = new MqttMessage(mqttFixedHeader,from); channel.writeAndFlush(mqttPubAckMessage); }
private void sendPubRec(String clientID, int messageID) { LOG.trace("Sending PUBREC message. CId={}, messageId={}", clientID, messageID); MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBREC, false, AT_MOST_ONCE, false, 0); MqttMessage pubRecMessage = new MqttMessage(fixedHeader, from(messageID)); final Optional<ConnectionDescriptor> connectionDescriptor = connectionDescriptors.lookupDescriptor(clientID); if (connectionDescriptor.isPresent()) { final ConnectionDescriptor descriptor = connectionDescriptor.get(); try { descriptor.writeAndFlush(pubRecMessage); } catch (Throwable e) { LOG.error("Unable to send {} message. CId=<{}>, messageId={}", MqttMessageType.PUBREC, clientID, messageID, e); } } }
private void sendPubComp(String clientID, int messageID) { LOG.trace("Sending PUBCOMP message. CId={}, messageId={}", clientID, messageID); MqttFixedHeader fixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP, false, AT_MOST_ONCE, false, 0); MqttMessage pubCompMessage = new MqttMessage(fixedHeader, from(messageID)); final Optional<ConnectionDescriptor> connectionDescriptor = connectionDescriptors.lookupDescriptor(clientID); if (connectionDescriptor.isPresent()) { final ConnectionDescriptor descriptor = connectionDescriptor.get(); try { descriptor.writeAndFlush(pubCompMessage); } catch (Throwable e) { LOG.error("Unable to send {} message. CId=<{}>, messageId={}", MqttMessageType.PUBCOMP, clientID, messageID, e); } } } }
@Override public void pubrel(Channel channel, MqttMessage mqttMessage ) { MqttMessageIdVariableHeader messageIdVariableHeader = (MqttMessageIdVariableHeader) mqttMessage.variableHeader(); int messageId = messageIdVariableHeader.messageId(); MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBCOMP,false, MqttQoS.AT_MOST_ONCE,false,0x02); MqttMessageIdVariableHeader from = MqttMessageIdVariableHeader.from(messageId); MqttMessage mqttPubAckMessage = new MqttMessage(mqttFixedHeader,from); Optional.ofNullable(Cache.del(messageId)).ifPresent(sendMqttMessage -> { sendMqttMessage.setConfirmStatus(ConfirmStatus.COMPLETE); }); channel.writeAndFlush(mqttPubAckMessage); }
void handlePingreq() { MqttMessage pingResp = new MqttMessage(new MqttFixedHeader(MqttMessageType.PINGRESP, false, MqttQoS.AT_MOST_ONCE, false, 0)); sendToClient(pingResp); }
void handlePingreq() { MqttMessage pingResp = new MqttMessage(new MqttFixedHeader(MqttMessageType.PINGRESP, false, MqttQoS.AT_MOST_ONCE, false, 0)); sendToClient(pingResp); }
@Override public void pubrec(Channel channel, MqttMessage mqttMessage ) { MqttMessageIdVariableHeader messageIdVariableHeader = (MqttMessageIdVariableHeader) mqttMessage.variableHeader(); int messageId = messageIdVariableHeader.messageId(); MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.PUBREL,false, MqttQoS.AT_LEAST_ONCE,false,0x02); MqttMessageIdVariableHeader from = MqttMessageIdVariableHeader.from(messageId); MqttMessage mqttPubAckMessage = new MqttMessage(mqttFixedHeader,from); Optional.ofNullable(Cache.get(messageId)).ifPresent(sendMqttMessage -> { sendMqttMessage.setTimestamp(System.currentTimeMillis()); sendMqttMessage.setConfirmStatus(ConfirmStatus.PUBREL); }); channel.writeAndFlush(mqttPubAckMessage); }
private static MqttMessage createMessageWithFixedHeaderAndMessageIdVariableHeader(MqttMessageType messageType) { MqttFixedHeader mqttFixedHeader = new MqttFixedHeader( messageType, false, messageType == MqttMessageType.PUBREL ? MqttQoS.AT_LEAST_ONCE : MqttQoS.AT_MOST_ONCE, false, 0); MqttPacketIdVariableHeader mqttPacketIdVariableHeader = MqttPacketIdVariableHeader.from(12345); return new MqttMessage(mqttFixedHeader, mqttPacketIdVariableHeader); }