Example usage for io.netty.handler.codec.mqtt MqttPubAckMessage toString

List of usage examples for io.netty.handler.codec.mqtt MqttPubAckMessage toString

Introduction

In this page you can find the example usage for io.netty.handler.codec.mqtt MqttPubAckMessage toString.

Prototype

@Override
    public String toString() 

Source Link

Usage

From source file:net.anyflow.lannister.packetreceiver.PubAckReceiver.java

License:Apache License

@Override
protected void channelRead0(ChannelHandlerContext ctx, MqttPubAckMessage msg) throws Exception {
    logger.debug("packet incoming [message={}]", msg.toString());

    Session session = Session.NEXUS.get(ctx.channel().id());
    if (session == null) {
        logger.error("None exist session message [message={}]", msg.toString());

        ctx.channel().disconnect().addListener(ChannelFutureListener.CLOSE).addListener(fs -> // [MQTT-4.8.0-1]
        Plugins.SELF.get(DisconnectEventListener.class).disconnected(new AbnormalDisconnectEventArgs()));
        return;/* ww w .j  a  va2s .  c o m*/
    }

    session.setLastIncomingTime(new Date());

    String clientId = session.clientId();
    int messageId = msg.variableHeader().messageId();

    Topic topic = Topic.NEXUS.get(clientId, messageId, ClientType.SUBSCRIBER);
    if (topic == null) {
        logger.error("Topic does not exist [clientId={}, messageId={}]", clientId, messageId);
        session.dispose(true); // [MQTT-3.3.5-2]
        return;
    }

    final TopicSubscriber topicSubscriber = topic.subscribers().get(clientId);

    OutboundMessageStatus status = topicSubscriber.outboundMessageStatuses().get(messageId);

    if (status != null) {
        Plugins.SELF.get(DeliveredEventListener.class).delivered(new DeliveredEventArgs() {
            @Override
            public String clientId() {
                return clientId;
            }

            @Override
            public int messageId() {
                return messageId;
            }
        });
    }

    topicSubscriber.removeOutboundMessageStatus(messageId);
    logger.debug("Outbound message status REMOVED [clientId={}, messageId={}]", clientId, messageId);
}