本文整理汇总了Java中io.netty.handler.timeout.IdleStateHandler类的典型用法代码示例。如果您正苦于以下问题:Java IdleStateHandler类的具体用法?Java IdleStateHandler怎么用?Java IdleStateHandler使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
IdleStateHandler类属于io.netty.handler.timeout包,在下文中一共展示了IdleStateHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: open
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
public void open() {
EventLoopGroup eventLoop = new NioEventLoopGroup();
bootstrap = new Bootstrap();
bootstrap.group(eventLoop);
bootstrap.channel(NioSocketChannel.class);
bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 3 * 1000);
bootstrap.option(ChannelOption.SO_KEEPALIVE, true);
bootstrap.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline()
// .addLast("logging",new LoggingHandler(LogLevel.INFO))
.addLast("decoder", new ObjectDecoder(ClassResolvers.cacheDisabled(getClass().getClassLoader()))) // in 1
.addLast("handler", new ClientReadHandler()) // in 2
.addLast("encoder", new ObjectEncoder())// out 3
.addLast("idleStateHandler", new IdleStateHandler(0, 1, 0))
.addLast(new ClientIdleHandler());
}
});
}
示例2: setupWSChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
protected ChannelHandler setupWSChannel(SslContext sslCtx, Configuration conf, DataStore datastore) {
return new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast("ssl", sslCtx.newHandler(ch.alloc()));
ch.pipeline().addLast("httpServer", new HttpServerCodec());
ch.pipeline().addLast("aggregator", new HttpObjectAggregator(8192));
ch.pipeline().addLast("sessionExtractor", new WebSocketHttpCookieHandler(config));
ch.pipeline().addLast("idle-handler", new IdleStateHandler(conf.getWebsocket().getTimeout(), 0, 0));
ch.pipeline().addLast("ws-protocol", new WebSocketServerProtocolHandler(WS_PATH, null, true));
ch.pipeline().addLast("wsDecoder", new WebSocketRequestDecoder(datastore, config));
ch.pipeline().addLast("error", new WSExceptionHandler());
}
};
}
示例3: initChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
protected void initChannel(Channel ch) throws Exception {
RPCChannelHandler channelHandler =
new RPCChannelHandler(syncManager, rpcService);
IdleStateHandler idleHandler =
new IdleStateHandler(5, 10, 0);
ReadTimeoutHandler readTimeoutHandler =
new ReadTimeoutHandler(30);
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("idle", idleHandler);
pipeline.addLast("timeout", readTimeoutHandler);
pipeline.addLast("handshaketimeout",
new HandshakeTimeoutHandler(channelHandler, timer, 10));
pipeline.addLast("syncMessageDecoder",
new SyncMessageDecoder(maxFrameSize));
pipeline.addLast("syncMessageEncoder",
new SyncMessageEncoder());
pipeline.addLast("handler", channelHandler);
}
示例4: mayBeCreateIdleStateHandler
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
private Optional<IdleStateHandler> mayBeCreateIdleStateHandler() {
if (hbInterval > 0 && hbLossThreshold > 0) {
int interval = hbInterval;
int readTimeout = hbInterval * hbLossThreshold;
if (hbDisabled) {
interval = 0;
if (debug) {
log.debug("Registering heartbeatless timeout handler [from={}, read-timeout={}]", address(), readTimeout);
}
} else {
if (debug) {
log.debug("Registering heartbeat handler [from={}, interval={}, loss-threshold={}, read-timeout={}]",
address(), interval, hbLossThreshold, readTimeout);
}
}
return Optional.of(new IdleStateHandler(readTimeout, interval, 0, TimeUnit.MILLISECONDS));
}
return Optional.empty();
}
示例5: initChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
public void initChannel(final SocketChannel ch) throws Exception {
final ChannelPipeline p = ch.pipeline();
// removes idle connections after READER_IDLE_SECONDS seconds
p.addLast("idleStateHandler",
new IdleStateHandler(READER_IDLE_SECONDS, 0, 0));
// handle new connections and idle timeouts
p.addLast("auth", authHandler);
// break each data chunk by newlines and split out metrics
p.addLast("line", new GraphiteMetricDecoder(maxLength));
// batch up metrics and store
p.addLast("metrics", new MetricHandler(store));
}
示例6: initChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
protected void initChannel(SocketChannel ch) throws Exception {
try {
ch.config().setOption(ChannelOption.TCP_NODELAY, true);
ch.config().setOption(ChannelOption.IP_TOS, 0x18);
} catch (ChannelException ex) {
// IP_TOS not supported by platform, ignore
}
ch.config().setAllocator(PooledByteBufAllocator.DEFAULT);
PacketRegistry r = new PacketRegistry();
ch.pipeline().addLast("idleStateHandler", new IdleStateHandler(0, 0, 30));
ch.pipeline().addLast(new HttpServerCodec());
ch.pipeline().addLast(new HttpObjectAggregator(65536));
ch.pipeline().addLast(new WebSocketHandler());
ch.pipeline().addLast(new PacketDecoder(r));
ch.pipeline().addLast(new PacketEncoder(r));
ch.pipeline().addLast(mExecutorGroup, "serverHandler", new ClientHandler(mServer));
}
示例7: newChannelInitializer
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
private ChannelInitializer<SocketChannel> newChannelInitializer(final NegotiateConfig config,
final ExchangeChannelGroup channelGroup, final EventExecutorGroup executorGroup) {
return new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ChannelPipeline pipeline = ch.pipeline();
ch.attr(ChannelAttrKeys.maxIdleTimeout).set(config.maxIdleTimeout());
ch.attr(ChannelAttrKeys.channelGroup).set(channelGroup);
ch.attr(ChannelAttrKeys.clientSide).set(true);
ch.attr(OneTime.awaitNegotiate).set(new CountDownLatch(1));
ch.attr(OneTime.channelConfig).set(config);
// TODO should increase ioRatio when every ChannelHandler bind to executorGroup?
pipeline.addLast(executorGroup,
RemotingEncoder.INSTANCE,
new RemotingDecoder(),
new IdleStateHandler(config.idleTimeout(), 0, 0),
HeartbeatChannelHandler.INSTANCE,
NegotiateChannelHandler.INSTANCE,
ConcreteRequestHandler.INSTANCE);
}
};
}
示例8: initChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
protected void initChannel(SocketChannel ch) throws Exception {
ch.config().setAllowHalfClosure(true);
ChannelPipeline pipeline = ch.pipeline();
//IdleStateHandler 与客户端链接后,根据超出配置的时间自动触发userEventTriggered
//readerIdleTime服务端长时间没有读到数据,则为读空闲,触发读空闲监听,并自动关闭链路连接,周期性按readerIdleTime的超时间触发空闲监听方法
//writerIdleTime服务端长时间没有发送写请求,则为空闲,触发写空闲监听,空闲期间,周期性按writerIdleTime的超时间触发空闲监听方法
//allIdleTime 服务端在allIdleTime时间内未接收到客户端消息,或者,也未去向客户端发送消息,则触发周期性操作
pipeline.addLast("ping", new IdleStateHandler(10, 20, 35, TimeUnit.SECONDS));
// 以("\n")为结尾分割的 解码器
pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.lineDelimiter()));
// 字符串解码 和 编码
pipeline.addLast("decoder", new StringDecoder());
pipeline.addLast("encoder", new StringEncoder());
// 自己的逻辑Handler
pipeline.addLast("handler", new DataServerHandler(nodeInfo));
}
示例9: initChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
public void initChannel(SocketChannel ch) {
/* Netty default: {@code maxInitialLineLength (4096)} */
int maxInitialLineLength = 4096 * 2;
/* Netty default: {@code maxHeaderSize (8192)} */
int maxHeaderSize = 8192 * 2;
/* Netty default: {@code maxChunkSize (8192)} */
int maxChunkSize = 8192 * 2;
int readerIdleTimeSeconds = 0;
int writerIdleTimeSeconds = 0;
int allIdleTimeSeconds = 10;
ch.pipeline().addLast(new LoggingHandler(NettyProxyFrontendHandler.class), //
new HttpRequestDecoder(maxInitialLineLength, maxHeaderSize, maxChunkSize), //
new IdleStateHandler(readerIdleTimeSeconds, writerIdleTimeSeconds, allIdleTimeSeconds), //
new NettyProxyFrontendHandler());
}
示例10: start
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
private void start() throws InterruptedException {
EventLoopGroup eventLoopGroup=new NioEventLoopGroup();
Bootstrap bootstrap=new Bootstrap();
bootstrap.channel(NioSocketChannel.class);
bootstrap.option(ChannelOption.SO_KEEPALIVE,true);
bootstrap.group(eventLoopGroup);
bootstrap.remoteAddress(host,port);
bootstrap.handler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel socketChannel) throws Exception {
socketChannel.pipeline().addLast(new IdleStateHandler(20,10,0));
socketChannel.pipeline().addLast(new ObjectEncoder());
socketChannel.pipeline().addLast(new ObjectDecoder(ClassResolvers.cacheDisabled(null)));
socketChannel.pipeline().addLast(new NettyClientHandler());
}
});
ChannelFuture future =bootstrap.connect(host,port).sync();
if (future.isSuccess()) {
socketChannel = (SocketChannel)future.channel();
System.out.println("connect server 成功---------");
}
}
示例11: initializePlainTCPTransport
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
private void initializePlainTCPTransport(final NettyMQTTHandler handler, IConfig props) throws IOException {
final SmartConnectorIdleTimeoutHandler timeoutHandler = new SmartConnectorIdleTimeoutHandler();
String host = props.getProperty(BrokerConstants.HOST_PROPERTY_NAME);
int port = Integer.parseInt(props.getProperty(BrokerConstants.PORT_PROPERTY_NAME));
initFactory(host, port, new PipelineInitializer() {
@Override
void init(ChannelPipeline pipeline) {
pipeline.addFirst("idleStateHandler", new IdleStateHandler(0, 0, Constants.DEFAULT_CONNECT_TIMEOUT));
pipeline.addAfter("idleStateHandler", "idleEventHandler", timeoutHandler);
//pipeline.addLast("logger", new LoggingHandler("Netty", LogLevel.ERROR));
pipeline.addFirst("bytemetrics", new BytesMetricsHandler(m_bytesMetricsCollector));
pipeline.addLast("decoder", new MQTTDecoder());
pipeline.addLast("encoder", new MQTTEncoder());
pipeline.addLast("metrics", new MessageMetricsHandler(m_metricsCollector));
pipeline.addLast("handler", handler);
}
});
}
示例12: NettyConnector
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
public NettyConnector(InetSocketAddress isa, final TransportConfig transportConfig) {
workerGroup = new NioEventLoopGroup(1, new DefaultThreadFactory("N4C-Work"));
clientBoot = new Bootstrap().group(workerGroup).channel(NioSocketChannel.class);
clientBoot.option(ChannelOption.TCP_NODELAY, true);
clientBoot.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, transportConfig.getConnectTimeout());
clientBoot.option(ChannelOption.SO_RCVBUF, 8 * 1024).option(ChannelOption.SO_SNDBUF, 8 * 1024);
clientBoot.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
TransportProtocolDecoder decoder = new TransportProtocolDecoder();
decoder.setMaxObjectSize(transportConfig.getMaxSize());
TransportProtocolEncoder encoder = new TransportProtocolEncoder();
encoder.setMaxObjectSize(transportConfig.getMaxSize());
ch.pipeline().addLast("TransportProtocolDecoder", decoder);
ch.pipeline().addLast("TransportProtocolEncoder", encoder);
int intervalSeconds = transportConfig.getHeartbeatIntervalSeconds();
ch.pipeline().addLast("IdleStateHandler", new IdleStateHandler(0, intervalSeconds, 0));
ch.pipeline().addLast("NettyClientHandler", new NettyClientHandler());
}
});
clientBoot.remoteAddress(isa);
}
示例13: NettyConnector
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
public NettyConnector(InetSocketAddress isa, final TransportConfig transportConfig) {
workerGroup = new NioEventLoopGroup(1, new DefaultExecutorServiceFactory("N5C-Work"));
clientBoot = new Bootstrap().group(workerGroup).channel(NioSocketChannel.class);
clientBoot.option(ChannelOption.TCP_NODELAY, true);
clientBoot.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, transportConfig.getConnectTimeout());
clientBoot.option(ChannelOption.SO_RCVBUF, 8 * 1024).option(ChannelOption.SO_SNDBUF, 8 * 1024);
clientBoot.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
TransportProtocolDecoder decoder = new TransportProtocolDecoder();
decoder.setMaxObjectSize(transportConfig.getMaxSize());
TransportProtocolEncoder encoder = new TransportProtocolEncoder();
encoder.setMaxObjectSize(transportConfig.getMaxSize());
ch.pipeline().addLast("TransportProtocolDecoder", decoder);
ch.pipeline().addLast("TransportProtocolEncoder", encoder);
int intervalSeconds = transportConfig.getHeartbeatIntervalSeconds();
ch.pipeline().addLast("IdleStateHandler", new IdleStateHandler(0, intervalSeconds, 0));
ch.pipeline().addLast("NettyClientHandler", new NettyClientHandler());
}
});
clientBoot.remoteAddress(isa);
}
示例14: initializePlainTCPTransport
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
private void initializePlainTCPTransport(final NettyMQTTHandler handler, IConfig props) throws IOException {
final MoquetteIdleTimeoutHandler timeoutHandler = new MoquetteIdleTimeoutHandler();
String host = props.getProperty(BrokerConstants.HOST_PROPERTY_NAME);
int port = Integer.parseInt(props.getProperty(BrokerConstants.PORT_PROPERTY_NAME));
initFactory(host, port, new PipelineInitializer() {
@Override
void init(ChannelPipeline pipeline) {
pipeline.addFirst("idleStateHandler", new IdleStateHandler(0, 0, Constants.DEFAULT_CONNECT_TIMEOUT));
pipeline.addAfter("idleStateHandler", "idleEventHandler", timeoutHandler);
//pipeline.addLast("logger", new LoggingHandler("Netty", LogLevel.ERROR));
pipeline.addFirst("bytemetrics", new BytesMetricsHandler(m_bytesMetricsCollector));
pipeline.addLast("decoder", new MQTTDecoder());
pipeline.addLast("encoder", new MQTTEncoder());
pipeline.addLast("metrics", new MessageMetricsHandler(m_metricsCollector));
pipeline.addLast("handler", handler);
}
});
}
示例15: initChannel
import io.netty.handler.timeout.IdleStateHandler; //导入依赖的package包/类
@Override
protected void initChannel(Channel ch) throws Exception {
RPCChannelHandler channelHandler =
new RPCChannelHandler(syncManager, rpcService);
IdleStateHandler idleHandler =
new IdleStateHandler(5, 10, 0);
ReadTimeoutHandler readTimeoutHandler =
new ReadTimeoutHandler(30);
ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast("idle", idleHandler);
pipeline.addLast("timeout", readTimeoutHandler);
pipeline.addLast("handshaketimeout",
new HandshakeTimeoutHandler(channelHandler, timer, 10));
pipeline.addLast("syncMessageDecoder",
new SyncMessageDecoder(maxFrameSize));
pipeline.addLast("syncMessageEncoder",
new SyncMessageEncoder());
pipeline.addLast("handler", channelHandler);
}