本文整理汇总了Java中org.jboss.netty.handler.timeout.IdleStateEvent类的典型用法代码示例。如果您正苦于以下问题:Java IdleStateEvent类的具体用法?Java IdleStateEvent怎么用?Java IdleStateEvent使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
IdleStateEvent类属于org.jboss.netty.handler.timeout包,在下文中一共展示了IdleStateEvent类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
if (!isHandshakeComplete()) {
return;
}
if (e.getState() == IdleState.READER_IDLE) {
// When no message is received on channel for read timeout, then close
// the channel
log.info("Disconnecting client {} due to read timeout", getClientInfoString());
ctx.getChannel().close();
} else if (e.getState() == IdleState.WRITER_IDLE) {
// Send keep alive message
log.debug("Sending keep alive message due to IdleState timeout " + pc.toString());
pc.sendMessage(Collections.singletonList(pc.factory().buildKeepaliveMsg().build()));
}
}
示例2: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
if (e.getState() == IdleState.WRITER_IDLE) {
Channel channel = e.getChannel();
if (channel != null) {
//写空闲 则发送心跳数据
channel.write(Heartbeat.getSingleton());
} else {
logger.warn("writer idle on channel({}), but hsfChannel is not managed.", e.getChannel());
}
} else if (e.getState() == IdleState.READER_IDLE) {
//读空闲 则断开连接
logger.error("channel:{} is time out.", e.getChannel());
handleUpstream(ctx, new DefaultExceptionEvent(e.getChannel(), new SocketTimeoutException(
"force to close channel(" + ctx.getChannel().getRemoteAddress() + "), reason: time out.")));
e.getChannel().close();
}
super.channelIdle(ctx, e);
}
示例3: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
private void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) {
if (e.getState() == IdleState.READER_IDLE) {
Object a = ctx.getChannel().getAttachment();
// connect/login timeout
if (a == null || a instanceof ChannelFuture) {
ctx.getChannel().close();
return;
}
ChannelData d = (ChannelData)a;
if (d.timer.elapsed() > TimeUnit.MILLISECONDS.convert(60, TimeUnit.SECONDS)) {
ctx.getChannel().close();
} else {
ctx.sendDownstream(new DownstreamMessageEvent(ctx.getChannel(),
new DefaultChannelFuture(ctx.getChannel(), false), PING, null));
}
}
}
示例4: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
// check if the client did nothing for too long
if (e.getState().equals(IdleState.ALL_IDLE)) {
ImapSession session = (ImapSession) attributes.get(ctx.getChannel());
InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
session.getLog().info("Logout client " + address.getHostName() + " (" + address.getAddress().getHostAddress() + ") because it idled for too long...");
// logout the client
session.logout();
// close the channel
ctx.getChannel().close();
}
super.channelIdle(ctx, e);
}
示例5: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e)
throws Exception {
if (e.getState() == IdleState.ALL_IDLE) {
e.getChannel().close();
}
}
示例6: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e)
throws Exception {
OFFactory factory = (ofVersion == OFVersion.OF_13) ? factory13 : factory10;
OFMessage m = factory.buildEchoRequest().build();
log.debug("Sending Echo Request on idle channel: {}",
e.getChannel().getPipeline().getLast().toString());
e.getChannel().write(Collections.singletonList(m));
// XXX S some problems here -- echo request has no transaction id, and
// echo reply is not correlated to the echo request.
}
示例7: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx,
IdleStateEvent e) throws Exception {
// send an echo request
EchoRequestMessage m = new EchoRequestMessage();
AsyncMessageHeader header = new AsyncMessageHeader();
header.setTransactionId(getTransactionId());
m.setHeader(header);
SyncMessage bsm = new SyncMessage(MessageType.ECHO_REQUEST);
bsm.setEchoRequest(m);
ctx.getChannel().write(bsm);
}
示例8: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e)
throws Exception {
log.debug("channelIdle on OFChannelHandler {}", String.format("%08x", System.identityHashCode(this)));
OFChannelHandler handler = ctx.getPipeline().get(OFChannelHandler.class);
handler.sendEchoRequest();
}
示例9: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext context, IdleStateEvent idleStateEvent) {
final String remoteAddress = idleStateEvent.getChannel().getRemoteAddress().toString();
idleStateEvent.getChannel().close().addListener(future -> {
if (future.isSuccess()) {
logger.debug("channel closed: {}", remoteAddress);
} else {
logger.debug("channel failed to close: {}", remoteAddress);
}
});
}
示例10: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
super.channelIdle(ctx, e);
if(e.getState() == IdleState.ALL_IDLE) {
e.getChannel().close();
System.out.println("idle channel was closed!");
}
}
示例11: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) {
logger.info("In IDLE event handler for TCP...");
//there are 3 states. READER/WRITER/ALL
if (e.getState() == IdleState.ALL_IDLE){
int statusCodeInt = 0;
String statusCode = statusCodeInt + " SUCCESSFUL";
String errMsg="idleTimeout to finish";
tcpWorker.onComplete(tcpWorker.responseSb.toString(), false,
errMsg, errMsg, statusCode, statusCodeInt);
}
}
示例12: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
/**
* this case is like a read timeout where did not get anything from the
* server for a long time.
*
* For UDP need to mark as error
*
* @see org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler#channelIdle
* (org.jboss.netty.channel.ChannelHandlerContext,
* org.jboss.netty.handler.timeout.IdleStateEvent)
*/
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) {
logger.debug("In IDLE event handler for UDP..timeout.");
// there are 3 states. READER/WRITER/ALL
if (e.getState() == IdleState.ALL_IDLE) {
int statusCodeInt = 1;
String statusCode = statusCodeInt + " FAILURE";
String errMsg = "UDP idle (read) timeout";
udpWorker.onComplete(udpWorker.responseSb.toString(), true,
errMsg, errMsg, statusCode, statusCodeInt);
}
}
示例13: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e)
throws Exception {
List<OFMessage> msglist = new ArrayList<OFMessage>(1);
msglist.add(factory.getMessage(OFType.ECHO_REQUEST));
e.getChannel().write(msglist);
}
开发者ID:vishalshubham,项目名称:Multipath-Hedera-system-in-Floodlight-controller,代码行数:8,代码来源:Controller.java
示例14: handleUpstream
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
@Override
public void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e) throws Exception {
if (e instanceof IdleStateEvent) {
channelIdle(ctx, (IdleStateEvent) e);
} else {
super.handleUpstream(ctx, e);
}
}
示例15: channelIdle
import org.jboss.netty.handler.timeout.IdleStateEvent; //导入依赖的package包/类
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) {
if (e.getState() == IdleState.READER_IDLE) {
if (_timer.elapsed() > TimeUnit.MILLISECONDS.convert(60, TimeUnit.SECONDS)) {
ctx.getChannel().close();
} else {
L.debug("send ping");
ctx.sendDownstream(new DownstreamMessageEvent(ctx.getChannel(),
new DefaultChannelFuture(ctx.getChannel(), false), PING, null));
}
}
}