package cn.dbw.server.handler;

import org.apache.log4j.Logger;

import cn.dbw.server.BrokeServer;
import cn.dbw.util.DateUtils;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.timeout.IdleStateEvent;

public class IdleStateTrigger extends ChannelInboundHandlerAdapter {
	
	private final Logger LOGGER=Logger.getLogger(IdleStateTrigger.class);


    @Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        if(evt instanceof IdleStateEvent){
            IdleStateEvent event= (IdleStateEvent) evt;
            switch (event.state()){
                case READER_IDLE:
                	 //服务端触发事件,说明客户端已经掉线,关闭失效连接
                	LOGGER.error("【客户端已断开】"+ctx.channel().remoteAddress()+"  "+DateUtils.getCurrentDateTime());
                    ctx.close();
                    break;
            }
        }
        super.userEventTriggered(ctx, evt);
    }
   
}