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

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

Introduction

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

Prototype

@Override
    public String toString() 

Source Link

Usage

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

License:Apache License

@Override
protected void channelRead0(ChannelHandlerContext ctx, MqttUnsubscribeMessage 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;/*from   w ww . j  av  a2  s  .  c  om*/
    }

    session.setLastIncomingTime(new Date());

    List<String> topicFilters = msg.payload().topics();

    if (topicFilters == null || topicFilters.isEmpty()) {
        session.dispose(true); // [MQTT-4.8.0-1]
        return;
    }

    topicFilters.stream().forEach(tf -> session.topicSubscriptions().remove(tf));

    Plugins.SELF.get(UnsubscribeEventListener.class).unsubscribed(new UnsubscribeEventArgs() {
        @Override
        public String clientId() {
            return session.clientId();
        }

        @Override
        public List<String> topicFilters() {
            return topicFilters;
        }
    });

    session.send(MessageFactory.unsuback(msg.variableHeader().messageId())); // [MQTT-2.3.1-7],[MQTT-3.10.4-4],[MQTT-3.10.4-5]
}