Example usage for io.netty.handler.timeout IdleStateEvent state

List of usage examples for io.netty.handler.timeout IdleStateEvent state

Introduction

In this page you can find the example usage for io.netty.handler.timeout IdleStateEvent state.

Prototype

IdleState state

To view the source code for io.netty.handler.timeout IdleStateEvent state.

Click Source Link

Usage

From source file:club.lovety.xy.netty.test.UptimeClientHandler.java

License:Apache License

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
    if (!(evt instanceof IdleStateEvent)) {
        return;//from w  ww .j a  va 2 s.  c om
    }

    IdleStateEvent e = (IdleStateEvent) evt;
    if (e.state() == IdleState.READER_IDLE) {
        // The connection was OK but there was no traffic for last period.
        println("Disconnecting due to no inbound traffic");
        ctx.close();
    }
}

From source file:cn.savor.small.netty.MiniProNettyClientHandler.java

License:Open Source License

@Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        super.userEventTriggered(ctx, evt);
        String channelId = ctx.channel().id().toString();
        if (evt instanceof IdleStateEvent) {

            IdleStateEvent event = (IdleStateEvent) evt;

            if (event.state().equals(IdleState.READER_IDLE)) {
                //?
                LogUtils.i("READER_IDLE");
                LogFileUtil.write("MiniNettyClientHandler READER_IDLE");

            } else if (event.state().equals(IdleState.WRITER_IDLE)) {

                LogUtils.i("WRITER_IDLE");
                LogFileUtil.write("MiniNettyClientHandler WRITER_IDLE");
                try {
                    // ???
                    MessageBean message = new MessageBean();
                    message.setCmd(MessageBean.Action.HEART_CLENT_TO_SERVER);
                    String number = channelId + System.currentTimeMillis();
                    message.setSerialnumber(number);
                    message.setIp(AppUtils.getLocalIPAddress());
                    message.setMac(session.getEthernetMac());
                    InnerBean bean = new InnerBean();
                    bean.setHotelId(session.getBoiteId());
                    bean.setRoomId(session.getRoomId());
                    bean.setSsid(AppUtils.getShowingSSID(mContext));
                    bean.setBoxId(session.getBoxId());
                    ArrayList<String> contList = new ArrayList<>();
                    contList.add("I am a mini Heart Pakage...");
                    contList.add(new Gson().toJson(bean));
                    message.setContent(contList);
                    ChannelFuture future = ctx.writeAndFlush(message);
                    if (!future.isSuccess()) {
                        close(ctx);// w w w  .j  a  va2 s. c  o  m
                    }
                    LogUtils.v("miniProgram--WRITER_IDLE====" + channelId + "====>>>>...??:"
                            + message.getSerialnumber());
                    LogUtils.v("miniProgram--future.isSuccess()====" + future.isSuccess());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } else if (event.state().equals(IdleState.ALL_IDLE)) {
                //
                //?REQ==========
                LogUtils.i("ALL_IDLE");
                close(ctx);
            }

        }
    }

From source file:cn.savor.small.netty.NettyClientHandler.java

License:Open Source License

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    super.userEventTriggered(ctx, evt);
    String channelId = ctx.channel().id().toString();
    if (evt instanceof IdleStateEvent) {

        IdleStateEvent event = (IdleStateEvent) evt;

        if (event.state().equals(IdleState.READER_IDLE)) {
            //?//from ww  w.j  a va  2 s.c o m
            LogUtils.i("READER_IDLE");
            LogFileUtil.write("NettyClientHandler READER_IDLE");

        } else if (event.state().equals(IdleState.WRITER_IDLE)) {

            LogUtils.i("WRITER_IDLE");
            LogFileUtil.write("NettyClientHandler WRITER_IDLE");
            //?REQ==========
            LogUtils.i("ALL_IDLE");
            // ???
            MessageBean message = new MessageBean();
            message.setCmd(MessageBean.Action.HEART_CLENT_TO_SERVER);
            String number = channelId + System.currentTimeMillis();
            message.setSerialnumber(number);
            message.setIp(AppUtils.getLocalIPAddress());
            message.setMac(session.getEthernetMac());
            InnerBean bean = new InnerBean();
            bean.setHotelId(session.getBoiteId());
            bean.setRoomId(session.getRoomId());
            bean.setSsid(AppUtils.getShowingSSID(mContext));
            bean.setBoxId(session.getBoxId());
            ArrayList<String> contList = new ArrayList<String>();
            contList.add("I am a Heart Pakage...");
            contList.add(new Gson().toJson(bean));
            message.setContent(contList);
            ctx.writeAndFlush(message);
            LogUtils.v("????====" + channelId + "====>>>>.....??:"
                    + message.getSerialnumber());
            LogFileUtil.write("NettyClientHandler ????====" + channelId
                    + "====>>>>.....??:" + message.getSerialnumber());
        } else if (event.state().equals(IdleState.ALL_IDLE)) {
            //
            close(ctx);
        }

    }
}

From source file:com.alltobid.quotabid.BidServerHandler.java

License:Apache License

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent e = (IdleStateEvent) evt;
        if (e.state() == IdleState.READER_IDLE) {
            ctx.close();//  w w w  . java 2s.c  o m
        }
    }
}

From source file:com.caocao.nio.server.CustomerInboundHandler.java

License:Apache License

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state().equals(IdleState.READER_IDLE)) {
            ctx.channel().close();/*from   w ww  .j  a  v a  2s .  c o m*/
            ctx.channel().disconnect();
            logger.info("{}?", ctx.channel().remoteAddress());
        }
    }
    // TODO Auto-generated method stub
    super.userEventTriggered(ctx, evt);
}

From source file:com.codebullets.external.party.simulator.connections.websocket.outbound.KeepAliveHandler.java

License:Apache License

/**
 * Triggered by the IdleStateHandler in the channel pipeline. Indicates that either
 * no message has been either sent or received for a longer period of time.
 *///  w  w  w. j  ava 2  s  . c o  m
@Override
public void userEventTriggered(final ChannelHandlerContext ctx, final Object evt) {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent e = (IdleStateEvent) evt;
        if (e.state() == IdleState.WRITER_IDLE && isAlive) {
            // no message has been sent for longer period of time -> send ping to keep connection alive
            ctx.writeAndFlush(new PingWebSocketFrame());
        } else if (e.state() == IdleState.READER_IDLE) {
            // no message has been received for a longer period of time
            // this means even no pong events.
            LOG.warn("No message received in expected time.");
            ctx.close();
        }
    }
}

From source file:com.emin.igwmp.skm.core.netty.handler.SocksServerHandler.java

License:Apache License

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state().equals(IdleState.READER_IDLE)) {
            ////from  w ww.  ja  v a  2s. c o m
        } else if (event.state().equals(IdleState.WRITER_IDLE)) {
            //
        } else if (event.state().equals(IdleState.ALL_IDLE)) {
            // ??
            String heart = Convert.Encode(new AssembleHeart().Assemble("", null));
            ctx.channel().writeAndFlush(heart);
        }
    }
    super.userEventTriggered(ctx, evt);
}

From source file:com.eucalyptus.ws.IoHandlers.java

License:Open Source License

public static Map<String, ChannelHandler> channelMonitors(final TimeUnit unit, final long timeout) {
    final Map<String, ChannelHandler> monitors = Maps.newHashMap();
    monitors.put("idlehandler", new IdleStateHandler(0L, 0L, timeout, unit));
    monitors.put("idlecloser", new ChannelInboundHandlerAdapter() {
        @Override//from   w ww.  ja va 2s  .c om
        public void userEventTriggered(final ChannelHandlerContext ctx, final Object evt) throws Exception {
            if (evt instanceof IdleStateEvent) {
                IdleStateEvent e = (IdleStateEvent) evt;
                if (e.state() == IdleState.ALL_IDLE) {
                    ctx.channel().close();
                }
            }
        }
    });
    monitors.putAll(extraMonitors);
    return monitors;
}

From source file:com.github.nettybook.ch7.junit.TelnetServerHandlerV3.java

License:Apache License

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent e = (IdleStateEvent) evt;

        if (e.state() == IdleState.ALL_IDLE) {
            ctx.writeAndFlush("All IDLE " + new Date().toString() + "\r\n");
            //log.info("All " + e.toString());
        } else if (e.state() == IdleState.READER_IDLE) {
            //log.info("Read " +e.toString());
            ctx.writeAndFlush("READER IDLE " + new Date().toString() + "\r\n");
        } else if (e.state() == IdleState.WRITER_IDLE) {
            //log.info("Write " +e.toString());
            ctx.writeAndFlush("WRITER IDLE" + new Date().toString() + " \r\n");
        } else {/*from   www .  ja  v  a  2  s.c  o  m*/
            //log.info("What the " +e.toString());
            ctx.writeAndFlush(" IDLE \n");
        }

    }
}

From source file:com.github.sparkfy.network.server.TransportChannelHandler.java

License:Apache License

/** Triggered based on events from an {@link io.netty.handler.timeout.IdleStateHandler}. */
@Override/*  www .j a  va  2 s  .co m*/
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent e = (IdleStateEvent) evt;
        // See class comment for timeout semantics. In addition to ensuring we only timeout while
        // there are outstanding requests, we also do a secondary consistency check to ensure
        // there's no race between the idle timeout and incrementing the numOutstandingRequests
        // (see SPARK-7003).
        //
        // To avoid a race between TransportClientFactory.createClient() and this code which could
        // result in an inactive client being returned, this needs to run in a synchronized block.
        synchronized (this) {
            boolean isActuallyOverdue = System.nanoTime()
                    - responseHandler.getTimeOfLastRequestNs() > requestTimeoutNs;
            if (e.state() == IdleState.ALL_IDLE && isActuallyOverdue) {
                if (responseHandler.numOutstandingRequests() > 0) {
                    String address = NettyUtils.getRemoteAddress(ctx.channel());
                    logger.error("Connection to {} has been quiet for {} ms while there are outstanding "
                            + "requests. Assuming connection is dead; please adjust spark.network.timeout if this "
                            + "is wrong.", address, requestTimeoutNs / 1000 / 1000);
                    client.timeOut();
                    ctx.close();
                } else if (closeIdleConnections) {
                    // While CloseIdleConnections is enable, we also close idle connection
                    client.timeOut();
                    ctx.close();
                }
            }
        }
    }
    ctx.fireUserEventTriggered(evt);
}