当前位置: 首页>>代码示例>>Java>>正文


Java IdleState.WRITER_IDLE属性代码示例

本文整理汇总了Java中io.netty.handler.timeout.IdleState.WRITER_IDLE属性的典型用法代码示例。如果您正苦于以下问题:Java IdleState.WRITER_IDLE属性的具体用法?Java IdleState.WRITER_IDLE怎么用?Java IdleState.WRITER_IDLE使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在io.netty.handler.timeout.IdleState的用法示例。


在下文中一共展示了IdleState.WRITER_IDLE属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    //心跳配置
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.READER_IDLE) {
            SpringBeanUtils.getInstance().getBean(NettyClientService.class).doConnect();
        } else if (event.state() == IdleState.WRITER_IDLE) {
            //表示已经多久没有发送数据了
            HEART_BEAT.setAction(NettyMessageActionEnum.HEART.getCode());
            ctx.writeAndFlush(HEART_BEAT);
            LogUtil.debug(LOGGER, () -> "向服务端发送的心跳");
        } else if (event.state() == IdleState.ALL_IDLE) {
            //表示已经多久既没有收到也没有发送数据了
            SpringBeanUtils.getInstance().getBean(NettyClientService.class).doConnect();
        }
    }
}
 
开发者ID:yu199195,项目名称:happylifeplat-transaction,代码行数:18,代码来源:NettyClientMessageHandler.java

示例2: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    //心跳配置
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.READER_IDLE) {
            //表示已经多久没有收到数据了
            //ctx.close();
        } else if (event.state() == IdleState.WRITER_IDLE) {
            //表示已经多久没有发送数据了
            SocketUtils.sendMsg(ctx, heartJson);
            logger.info("心跳数据---" + heartJson);
        } else if (event.state() == IdleState.ALL_IDLE) {
            //表示已经多久既没有收到也没有发送数据了

        }
    }
}
 
开发者ID:1991wangliang,项目名称:tx-lcn,代码行数:18,代码来源:TransactionHandler.java

示例3: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    Channel channel = ctx.channel();
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.ALL_IDLE) {
            //发送心跳
            channel.writeAndFlush(PING);
        }
        if (event.state() == IdleState.READER_IDLE) {
            //发送心跳
            channel.writeAndFlush(PING);
        }
        if (event.state() == IdleState.WRITER_IDLE) {
            channel.writeAndFlush(PING);
        }
    } else {
        super.userEventTriggered(ctx, evt);
    }
}
 
开发者ID:lee123lee123,项目名称:GoPush,代码行数:20,代码来源:NodeChannelInBoundHandler.java

示例4: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    Channel channel = ctx.channel();
    dataCenterChannelStore.isDcChannelToSave(channel);
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.ALL_IDLE) {
            //发送心跳
            channel.writeAndFlush(PING);
        }
        if (event.state() == IdleState.READER_IDLE) {
            //发送心跳
            channel.writeAndFlush(PING);
        }
        if (event.state() == IdleState.WRITER_IDLE) {
            channel.writeAndFlush(PING);
        }
    } else {
        super.userEventTriggered(ctx, evt);
    }
}
 
开发者ID:lee123lee123,项目名称:GoPush,代码行数:21,代码来源:NodeChannelInBoundHandler.java

示例5: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.READER_IDLE) {
            ctx.writeAndFlush(PING);
        }
        if (event.state() == IdleState.WRITER_IDLE) {
            ctx.writeAndFlush(PING);
        }
        if (event.state() == IdleState.ALL_IDLE) {
            ctx.writeAndFlush(PING);
        }
    } else {
        super.userEventTriggered(ctx, evt);
    }
}
 
开发者ID:lee123lee123,项目名称:GoPush,代码行数:17,代码来源:DeviceChannelInboundHandler.java

示例6: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    //心跳配置
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())&& socketService.getSocketEventService().hasOpenHeartCheck()) {
        IdleStateEvent event = (IdleStateEvent) evt;
        String uniqueKey = ctx.channel().remoteAddress().toString();
        if (event.state() == IdleState.READER_IDLE) {
            //表示已经多久没有收到数据了

            socketService.getSocketEventService().onHeartNoReadDataListener(ctx,uniqueKey);

        } else if (event.state() == IdleState.WRITER_IDLE) {
            //表示已经多久没有发送数据了

            socketService.getSocketEventService().onHeartNoWriteDataListener(ctx,uniqueKey);

        } else if (event.state() == IdleState.ALL_IDLE) {
            //表示已经多久既没有收到也没有发送数据了

        }
    }
}
 
开发者ID:1991wangliang,项目名称:sds,代码行数:22,代码来源:SocketHandler.java

示例7: userEventTriggered

@Override
public void userEventTriggered(final ChannelHandlerContext ctx, Object evt)
		throws Exception {
	if(evt instanceof IdleStateEvent) {
		IdleStateEvent 	event = (IdleStateEvent) evt;
		if (event.state() == IdleState.READER_IDLE) {
               System.out.println("--- Reader Idle ---");
               ctx.writeAndFlush("读取等待:客户端你在吗... ...\r\n");
           } else if (event.state() == IdleState.WRITER_IDLE) {
               System.out.println("--- Write Idle ---");
               ctx.writeAndFlush("写入等待:客户端你在吗... ...\r\n");
           } else if (event.state() == IdleState.ALL_IDLE) {
               System.out.println("--- All_IDLE ---");
               ctx.writeAndFlush("全部时间:客户端你在吗... ...\r\n");
           }
	}else{
		super.userEventTriggered(ctx, evt);
	}
}
 
开发者ID:hdcuican,项目名称:java_learn,代码行数:19,代码来源:ServerHandler.java

示例8: userEventTriggered

/**
 * 判断是否是IdleStateEvent事件,是则处理
 */
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
	if(evt instanceof IdleStateEvent) {
		IdleStateEvent event = (IdleStateEvent) evt;
		String type = "";
		if(event.state() == IdleState.READER_IDLE) 
			type = "read idle";
		else if(event.state() == IdleState.WRITER_IDLE)
			type = "write idle";
		else if(event.state() == IdleState.ALL_IDLE)
			type = "all idle";
		//
		ChannelFuture f = ctx.writeAndFlush(HEARTBEAT_SEQUENCE.duplicate());
		f.addListener(ChannelFutureListener.CLOSE_ON_FAILURE);
		
		System.out.println(ctx.channel().remoteAddress() + "超时类型 : " + type);
	} else {
		super.userEventTriggered(ctx, evt);
	}
}
 
开发者ID:janzolau1987,项目名称:study-netty,代码行数:23,代码来源:HeartbeatServerHandler.java

示例9: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent e = (IdleStateEvent) evt;
        if (e.state() == IdleState.READER_IDLE) {
            logger.info("READER_IDLE 事件触发, 关闭连接");/*读超时*/
            ctx.close();
        } else if (e.state() == IdleState.WRITER_IDLE) {
            logger.info("WRITER_IDLE 事件触发");
            ctx.writeAndFlush(new PingMessage());
        } else if (e.state() == IdleState.ALL_IDLE) {
            logger.info("ALL_IDLE 事件触发, 关闭连接");
            ctx.close();
        }
    }
}
 
开发者ID:TFdream,项目名称:netty-tutorials,代码行数:16,代码来源:NettyConnHandler.java

示例10: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {

	Channel channel = ctx.channel();
	log.error("userEventTriggered={}, object={}", channel, evt);

	if (!(evt instanceof IdleStateEvent)) { return; }

	if (evt instanceof IdleStateEvent)  {
		IdleStateEvent e = (IdleStateEvent) evt;

		if (e.state() == IdleState.READER_IDLE) {
			log.debug("userEventTriggered(readIdle)={}", ctx.channel());

			if (isReadBytes == false) ctx.close();
		} else if (e.state() == IdleState.WRITER_IDLE) {
			log.debug("userEventTriggered(writeIdle)={}", ctx.channel());
			
			if (isReadBytes == false) ctx.close();
		} else {
			log.debug("userEventTriggered(allIdle)={}", ctx.channel());
			
			if (isReadBytes == false) ctx.close();
		}
	}
}
 
开发者ID:iotoasis,项目名称:SI,代码行数:26,代码来源:HttpServerHandler.java

示例11: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.READER_IDLE) {
            // logger.info("read idle");
        } else if (event.state() == IdleState.WRITER_IDLE) {
            // logger.info("write idle");
        } else if (event.state() == IdleState.ALL_IDLE) {
            JSyncPacket message = new JSyncPacket();
            message.setPacketType(2);
            ctx.channel().writeAndFlush(message);
            logger.info("[Server 链路空闲!发送心跳!]" + message);
        }
    }
}
 
开发者ID:MOBX,项目名称:Thor,代码行数:16,代码来源:NettyServerHandler.java

示例12: userEventTriggered

/**
 * When a timeout occurs, notify listener and close the channel.
 *
 * @param ctx Channel context
 * @param evt Event
 * @throws Exception
 */
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent event = (IdleStateEvent) evt;
        if (event.state() == IdleState.READER_IDLE || event.state() == IdleState.WRITER_IDLE) {
            if (originalChannelContext == null) {
                originalChannelContext = ctx;
            }
            if (ctx == originalChannelContext) {
                originalChannelContext.fireUserEventTriggered(evt);
                isIdleHandlerOfTargetChannelRemoved = true;
            } else {
                sendTimeoutError(ctx);
            }
            /*Once a timeout occurs after sending the response, close the channel, otherwise we will still be
             getting response data  after the timeout, if backend sends data. */
            if (ctx != originalChannelContext) {
                ctx.close();
            }
        }
    }
}
 
开发者ID:wso2,项目名称:carbon-transports,代码行数:29,代码来源:RedirectHandler.java

示例13: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
    if (evt instanceof IdleStateEvent) {
        IdleStateEvent e = (IdleStateEvent) evt;
        if (e.state() == IdleState.WRITER_IDLE) {
            if(ctx.hasAttr(ServerConstant.SUSPECT) && ctx.attr(ServerConstant.SUSPECT).get()){
                LOGGER.info("suspect {} write idle happened again and close", ctx);
                ctx.close();
            }else{
                LOGGER.info("{} write idle happened and set context suspect true", ctx);
                ctx.attr(ServerConstant.SUSPECT).set(true);
                ctx.writeAndFlush(Unpooled.wrappedBuffer(MessageFactory.createHeartbeat().toBinary())).addListener(future -> {
                    if (!future.isSuccess()) {
                        LOGGER.info("failed to send heartbeat to {} message, cause by {} ", ctx.channel().remoteAddress(), future.cause());
                    }
                });
            }
        }
    }
}
 
开发者ID:LyLuo,项目名称:message-center,代码行数:20,代码来源:HeartbeatHandler.java

示例14: userEventTriggered

@Override
    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
        if (evt instanceof IdleStateEvent) {
            IdleStateEvent e = (IdleStateEvent) evt;
            if (e.state() == IdleState.READER_IDLE) {
                LOGGER.info("READER_IDLE");
//                ctx.close(); // 断开客户端的连接
            } else if (e.state() == IdleState.WRITER_IDLE) {
                LOGGER.info("WRITER_IDLE");
            } else if (e.state() == IdleState.ALL_IDLE) {
                LOGGER.info("ALL_IDLE");
                //                ctx.close(); // 断开客户端的连接
            }
        }

        super.userEventTriggered(ctx, evt);
    }
 
开发者ID:gukt,项目名称:umbrella,代码行数:17,代码来源:DefaultServerHandler.java

示例15: userEventTriggered

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
  if (enableMonitor && evt instanceof IdleStateEvent) {
    IdleStateEvent e = (IdleStateEvent) evt;
    if (e.state() == IdleState.READER_IDLE && !e.isFirst()) {
      /* trigger expired event */
      LOG.info("Server has not respond " + ctx.channel());
      ctx.fireUserEventTriggered(MonitorStateEvent.MONITOR_EXPIRED_STATE_EVENT);
    } else if (e.state() == IdleState.WRITER_IDLE) {
      /* send ping packet to remote server */
      if(LOG.isDebugEnabled()){
        LOG.debug("sending ping request " + ctx.channel());
      }
      ctx.writeAndFlush(ping.duplicate().retain());
    }
  }
  super.userEventTriggered(ctx, evt);
}
 
开发者ID:apache,项目名称:tajo,代码行数:18,代码来源:MonitorClientHandler.java


注:本文中的io.netty.handler.timeout.IdleState.WRITER_IDLE属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。