本文整理汇总了Java中io.netty.handler.timeout.IdleStateEvent.state方法的典型用法代码示例。如果您正苦于以下问题:Java IdleStateEvent.state方法的具体用法?Java IdleStateEvent.state怎么用?Java IdleStateEvent.state使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.netty.handler.timeout.IdleStateEvent
的用法示例。
在下文中一共展示了IdleStateEvent.state方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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();
}
}
}
示例2: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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) {
//表示已经多久既没有收到也没有发送数据了
}
}
}
示例3: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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);
}
}
示例4: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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);
}
}
示例5: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof IdleStateEvent) {
IdleStateEvent idle = (IdleStateEvent) evt;
if (idle.state() == IdleState.READER_IDLE) {
// We have not read any data from client in a while, let's close
// the subscriptions for this context.
LOG.info("Client {} is idle", ctx.channel());
}
} else if (evt instanceof SslCompletionEvent) {
SslCompletionEvent ssl = (SslCompletionEvent) evt;
if (!ssl.isSuccess()) {
LOG.error("SSL error: {}", ssl.getClass().getSimpleName(), ssl.cause());
}
} else {
LOG.warn("Received unhandled user event {}", evt);
}
}
示例6: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
/**
* 利用事件变化来做心跳检测
*/
@Override
public void userEventTriggered( ChannelHandlerContext _ctx , Object _obj ) throws Exception {
logger.debug( _handler_info( _ctx , "userEventTriggered" ) );
if ( _obj instanceof IdleStateEvent ) {
IdleStateEvent event = ( IdleStateEvent ) _obj;
if ( event.state() == IdleState.READER_IDLE ) {
lost++;
logger.debug( _handler_info( _ctx , " inactive with=" + lost ) );
if ( lost > 2 ) {
handler.stand( _ctx );
logger.debug( _handler_info( _ctx , " was stand with=" + lost ) );
}
}
} else {
logger.warn( _handler_info( _ctx , " was discard" ) );
}
}
示例7: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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) {
//表示已经多久既没有收到也没有发送数据了
}
}
}
示例8: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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);
}
}
示例9: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
/**
* 判断是否是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);
}
}
示例10: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof IdleStateEvent) {
IdleStateEvent idle = (IdleStateEvent) evt;
if (idle.state() == IdleState.READER_IDLE) {
// We have not read any data from client in a while, let's close
// the subscriptions for this context.
String subscriptionId = ctx.channel().attr(SubscriptionRegistry.SUBSCRIPTION_ID_ATTR).get();
if (!StringUtils.isEmpty(subscriptionId)) {
if (SubscriptionRegistry.get().containsKey(subscriptionId)) {
LOG.info("Closing subscription with subscription id {} due to idle event", subscriptionId);
SubscriptionRegistry.get().get(subscriptionId).close();
}
} else {
LOG.warn("Channel idle, but no subscription id found on context. Unable to close subscriptions");
}
}
} else if (evt instanceof SslCompletionEvent) {
SslCompletionEvent ssl = (SslCompletionEvent) evt;
if (!ssl.isSuccess()) {
LOG.error("SSL error: {}", ssl.getClass().getSimpleName(), ssl.cause());
}
} else {
LOG.warn("Received unhandled user event {}", evt);
}
}
示例11: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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();
}
}
}
示例12: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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();
}
}
}
示例13: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
//处理超时未收到消息的事件
if (evt instanceof IdleStateEvent) {
IdleStateEvent e = (IdleStateEvent) evt;
switch (e.state()) {
case READER_IDLE:
onIdeled(ctx.channel());
break;
case WRITER_IDLE:
break;
case ALL_IDLE:
break;
}
} else super.userEventTriggered(ctx, evt);
}
示例14: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@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);
}
}
}
示例15: userEventTriggered
import io.netty.handler.timeout.IdleStateEvent; //导入方法依赖的package包/类
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (!(evt instanceof IdleStateEvent)) {
logger.warn("One user event Triggered. evt=" + evt);
super.userEventTriggered(ctx, evt);
return;
}
IdleStateEvent stateEvent = (IdleStateEvent) evt;
switch (stateEvent.state()) {
case READER_IDLE:
channel.receiver.reconnect();
logger.warn("heartbeat read timeout,chanel closed!");
break;
case WRITER_IDLE:
ctx.writeAndFlush(Unpooled.buffer(1).writeByte(Constants.LF_10));
logger.warn("heartbeat write timeout,do write an EOL.");
break;
case ALL_IDLE:
}
}