@Override public void channelRead(ChannelHandlerContext ctx, Object message) throws Exception { MqttMessage msg = NettyUtils.validateMessage(message); final MQTTConnection mqttConnection = mqttConnection(ctx.channel()); try { mqttConnection.handleMessage(msg); } catch (Throwable ex) { //ctx.fireExceptionCaught(ex); LOG.error("Error processing protocol message: {}", msg.fixedHeader().messageType(), ex); ctx.channel().close().addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) { LOG.info("Closed client channel due to exception in processing"); } }); } finally { ReferenceCountUtil.release(msg); } }
return; MqttMessage msg = NettyUtils.validateMessage(message); String clientID = NettyUtils.clientID(ctx.channel()); MqttMessageType messageType = msg.fixedHeader().messageType();