io.netty.handler.timeout.IdleStateHandler的实例源码

项目:fresco_floodlight    文件:RPCChannelInitializer.java   
@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);
}
项目:star-map    文件:StarClientProtocol.java   
@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());

            }
        });
    }
项目:hekate    文件:NettyServerClient.java   
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={},interval,hbLossThreshold,readTimeout);
            }
        }

        return Optional.of(new IdleStateHandler(readTimeout,TimeUnit.MILLISECONDS));
    }

    return Optional.empty();
}
项目:qonduit    文件:Server.java   
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));
            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());
        }
    };

}
项目:graphiak    文件:GraphiakInitializer.java   
@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));

    // 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));
}
项目:FFS-PubSub    文件:NetworkManager.java   
@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",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));
}
项目:SDN-Multicast    文件:RPCChannelInitializer.java   
@Override
protected void initChannel(Channel ch) throws Exception {
    RPCChannelHandler channelHandler = 
            new RPCChannelHandler(syncManager,channelHandler);
}
项目:arscheduler    文件:RPCChannelInitializer.java   
@Override
protected void initChannel(Channel ch) throws Exception {
    RPCChannelHandler channelHandler = 
            new RPCChannelHandler(syncManager,channelHandler);
}
项目:sailfish    文件:AbstractConfigurableExchangeChannelGroup.java   
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),HeartbeatChannelHandler.INSTANCE,NegotiateChannelHandler.INSTANCE,ConcreteRequestHandler.INSTANCE);
        }
    };
}
项目:raft-java    文件:StartServer.java   
@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));
}
项目:raft-java    文件:StartServer.java   
@Override
protected void initChannel(SocketChannel ch) throws Exception {
    ch.config().setAllowHalfClosure(true);
    ChannelPipeline pipeline = ch.pipeline();

    //IdleStateHandler 与客户端链接后,根据超出配置的时间自动触发userEventTriggered
    //readerIdleTime服务端长时间没有读到数据,则为读空闲,触发读空闲监听,并自动关闭链路连接,周期性按readerIdleTime的超时间触发空闲监听方法
    //writerIdleTime服务端长时间没有发送写请求,则为空闲,触发写空闲监听,new ElectionServerHandler(nodeInfo));
}
项目:shortcircuit-proxy    文件:NettyProxyFrontendInitializer.java   
@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());
}
项目:floodlight1.2-delay    文件:RPCChannelInitializer.java   
@Override
protected void initChannel(Channel ch) throws Exception {
    RPCChannelHandler channelHandler = 
            new RPCChannelHandler(syncManager,channelHandler);
}
项目:netty    文件:NettyClientBootstrap.java   
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,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  成功---------");
    }
}
项目:EasyMessage    文件:NettyAcceptor.java   
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",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);
        }
    });
}
项目:jrpc    文件:NettyConnector.java   
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",intervalSeconds,0));
            ch.pipeline().addLast("NettyClientHandler",new NettyClientHandler());
        }
    });

    clientBoot.remoteAddress(isa);
}
项目:jrpc    文件:NettyConnector.java   
public NettyConnector(InetSocketAddress isa,new DefaultExecutorServiceFactory("N5C-Work"));
    clientBoot = new Bootstrap().group(workerGroup).channel(NioSocketChannel.class);
    clientBoot.option(ChannelOption.TCP_NODELAY,new NettyClientHandler());
        }
    });

    clientBoot.remoteAddress(isa);
}
项目:jim    文件:NettyAcceptor.java   
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,handler);
        }
    });
}
项目:floodlight-hardware    文件:RPCChannelInitializer.java   
@Override
protected void initChannel(Channel ch) throws Exception {
    RPCChannelHandler channelHandler =
            new RPCChannelHandler(syncManager,rpcService);

    IdleStateHandler idleHandler =
            new IdleStateHandler(5,0);
    ReadTimeoutHandler readTimeoutHandler =
            new ReadTimeoutHandler(30);

    ChannelPipeline pipeline = ch.pipeline();
    pipeline.addLast("idle",channelHandler);
}
项目:ACAMPController    文件:RPCChannelInitializer.java   
@Override
protected void initChannel(Channel ch) throws Exception {
    RPCChannelHandler channelHandler = 
            new RPCChannelHandler(syncManager,channelHandler);
}
项目:zbus    文件:TcpServer.java   
@Override
protected void initChannel(SocketChannel ch) throws Exception {  
    ChannelPipeline p = ch.pipeline(); 
    int timeout = loop.getIdleTimeInSeconds();
    p.addLast(new IdleStateHandler(0,timeout));
    SslContext sslCtx = loop.getSslContext();
    if(sslCtx != null){
        p.addLast(sslCtx.newHandler(ch.alloc()));
    }
    CodecInitializer initializer = getCodecInitializer();
    if(initializer != null){
        List<ChannelHandler> handlers = new ArrayList<ChannelHandler>();
        initializer.initPipeline(handlers);
        for(ChannelHandler handler : handlers){
             p.addLast((ChannelHandler)handler); 
        }
    }    
    p.addLast(this.nettyToIoAdaptor);
}
项目:SecureSmartHome    文件:ClientHandshakeHandler.java   
/**
 * Called once the TCP connection is established.
 * Configures the per-connection pipeline that is responsible for handling incoming and outgoing data.
 * After an incoming packet is decrypted,decoded and verified,* it will be sent to its target {@link de.unipassau.isl.evs.ssh.core.handler.MessageHandler}
 * by the {@link IncomingDispatcher}.
 */
@Override
public void channelRegistered(ChannelHandlerContext ctx) throws Exception {
    Log.v(TAG,"channelRegistered " + ctx);
    ctx.attr(ATTR_HANDSHAKE_FINISHED).set(false);

    // Add (de-)serialization Handlers before this Handler
    ctx.pipeline().addBefore(ctx.name(),ObjectEncoder.class.getSimpleName(),new ObjectEncoder());
    ctx.pipeline().addBefore(ctx.name(),ObjectDecoder.class.getSimpleName(),new ObjectDecoder(
            ClassResolvers.weakCachingConcurrentResolver(getClass().getClassLoader())));
    ctx.pipeline().addBefore(ctx.name(),LoggingHandler.class.getSimpleName(),new LoggingHandler(LogLevel.TRACE));

    // Timeout Handler
    ctx.pipeline().addBefore(ctx.name(),IdleStateHandler.class.getSimpleName(),new IdleStateHandler(READER_IDLE_TIME,WRITER_IDLE_TIME,ALL_IDLE_TIME));
    ctx.pipeline().addBefore(ctx.name(),TimeoutHandler.class.getSimpleName(),new TimeoutHandler());

    // Add exception handler
    ctx.pipeline().addAfter(ctx.name(),PipelinePlug.class.getSimpleName(),new PipelinePlug());

    super.channelRegistered(ctx);
    Log.v(TAG,"Pipeline after register: " + ctx.pipeline());
}
项目:NPush    文件:ServerInitializer.java   
@Override
protected void initChannel(SocketChannel ch) throws Exception {
    ChannelPipeline pipeline = ch.pipeline();

    /*
     * 使用ObjectDecoder和ObjectEncoder
     * 因为双向都有写数据和读数据,所以这里需要两个都设置
     * 如果只读,那么只需要ObjectDecoder即可
     */
    pipeline.addLast("decoder",new ObjectDecoder(ClassResolvers.cacheDisabled(this.getClass().getClassLoader())));
    pipeline.addLast("encoder",new ObjectEncoder());

    /*
     * 这里只监听读操作
     * 可以根据需求,监听写操作和总得操作
     */
    pipeline.addLast("idleStateHandler",Constants.ALL_IDLE_TIME,TimeUnit.SECONDS));

    pipeline.addLast("handler",new ServerHandler());
}
项目:jlogstash-input-plugin    文件:Server.java   
/**
 * 加入打日志、ssl、idleState、BeatsHandler和BeatsParser这几个handler。
 */
public void initChannel(SocketChannel socket) throws SSLException {
    ChannelPipeline pipeline = socket.pipeline();

    pipeline.addLast(LOGGER_HANDLER,loggingHandler);

    if(server.isSslEnable()) {
        SslHandler sslHandler = sslBuilder.build(socket.alloc());
        pipeline.addLast(SSL_HANDLER,sslHandler);
    }

    // We have set a specific executor for the idle check,because the `beatsHandler` can be
    // blocked on the queue,this the idleStateHandler manage the `KeepAlive` signal.
    pipeline.addLast(idleExecutorGroup,KEEP_ALIVE_HANDLER,new IdleStateHandler(60*15,5,0));
    pipeline.addLast(BEATS_PARSER,new BeatsParser());
    pipeline.addLast(BEATS_HANDLER,this.beatsHandler);
}
项目:flashback    文件:ProxyInitializer.java   
@Override
public void initChannel(SocketChannel socketChannel) {
  ChannelPipeline channelPipeline = socketChannel.pipeline();
  channelPipeline.addLast("decoder",new HttpRequestDecoder());
  channelPipeline.addLast("encoder",new HttpResponseEncoder());
  channelPipeline.addLast("idle",_proxyServer.getClientConnectionIdleTimeout()));
  ChannelMediator channelMediator = new ChannelMediator(socketChannel,_proxyServer.getProxyModeControllerFactory(),_proxyServer.getDownstreamWorkerGroup(),_proxyServer.getServerConnectionIdleTimeout(),_proxyServer.getAllChannels());
  ClientChannelHandler clientChannelHandler =
      new ClientChannelHandler(channelMediator,_proxyServer.getConnectionFlowRegistry());

  channelPipeline.addLast("handler",clientChannelHandler);
}
项目:cloud-pubsub-mqtt-proxy    文件:NettyAcceptor.java   
private void initializePlainTcpTransport(IMessaging messaging,Properties props)
    throws IOException {
  final NettyMQTTHandler mqttHandler = new NettyMQTTHandler();
  final PubsubHandler handler = new PubsubHandler(pubsub,mqttHandler);
  handler.setMessaging(messaging);
  String host = props.getProperty(Constants.HOST_PROPERTY_NAME);
  int port = Integer.parseInt(props.getProperty(Constants.PORT_PROPERTY_NAME));
  initFactory(host,new PipelineInitializer() {
    @Override
    void init(ChannelPipeline pipeline) {
      pipeline.addFirst("idleStateHandler",Constants.DEFAULT_CONNECT_TIMEOUT));
      pipeline.addAfter("idleStateHandler",new MoquetteIdleTimeoutHandler());
      //pipeline.addLast("logger",LogLevel.ERROR));
      pipeline.addFirst("bytemetrics",new BytesMetricsHandler(bytesMetricsCollector));
      pipeline.addLast("decoder",new MQTTDecoder());
      pipeline.addLast("encoder",new MQTTEncoder());
      pipeline.addLast("metrics",new MessageMetricsHandler(metricsCollector));
      pipeline.addLast("handler",handler);
    }
  });
}
项目:Thor    文件:JSyncServer.java   
protected void doOpen() throws Exception {
    bossGroup = new NioEventLoopGroup(1,(new NamedThreadFactory("NettyServerBoss",true)));
    workerGroup = new NioEventLoopGroup(DEFAULT_IO_THREADS,new NamedThreadFactory("NettyServerWorker",true));

    ServerBootstrap bootstrap = new ServerBootstrap();
    bootstrap.group(bossGroup,workerGroup)//
    .channel(NioServerSocketChannel.class)//
    .childOption(ChannelOption.TCP_NODELAY,false)//
    .childHandler(new ChannelInitializer<Channel>() {

        @Override
        public void initChannel(Channel ch) throws Exception {
            ChannelPipeline pipeline = ch.pipeline();
            pipeline.addLast(new NettyDecoder());
            pipeline.addLast(new NettyEncoder());
            pipeline.addLast(new IdleStateHandler(0,serverChannelMaxIdleTimeSeconds));
            pipeline.addLast(new NettyServerHandler());
        }
    });

    ChannelFuture channelFuture = bootstrap.bind(getBindAddress()).sync();
    channelFuture.awaitUninterruptibly();
    channel = channelFuture.channel();
    // channel.closeFuture().sync();
}
项目:Thor    文件:JSyncClient.java   
protected void doOpen() throws Exception {
    bootstrap = new Bootstrap();
    bootstrap.channel(NioSocketChannel.class);
    bootstrap.group(WORKER_GROUP);
    bootstrap.option(ChannelOption.SO_KEEPALIVE,true);
    bootstrap.option(ChannelOption.TCP_NODELAY,true);
    bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS,1000);
    bootstrap.handler(new ChannelInitializer<SocketChannel>() {

        public void initChannel(SocketChannel ch) {
            ChannelPipeline pipeline = ch.pipeline();
            pipeline.addLast(new NettyDecoder());
            pipeline.addLast(new NettyEncoder());
            pipeline.addLast(new IdleStateHandler(0,clientChannelMaxIdleTimeSeconds));
            pipeline.addLast(new NettyClientHandler());
        }
    });

    ChannelFuture channelFuture = bootstrap.connect(getBindAddress()).sync();
    channelFuture.awaitUninterruptibly();
    channel = channelFuture.channel();
    channel.closeFuture().sync();
}
项目:ircd4j    文件:IRCChannelInitializer.java   
@Override
protected void initChannel(SocketChannel ch) throws Exception {
    LineBasedFrameDecoder lineDecoder = new LineBasedFrameDecoder(MAX_LINE_LENGTH);
    StringDecoder stringDecoder = new StringDecoder(CHARSET); //FIXME: Should only split on CRLF,not on LF alone
    MessageDecoder messageDecoder = new MessageDecoder();
    MessageHandler messageHandler = new MessageHandler(handler);

    StringEncoder stringEncoder = new StringEncoder(CHARSET);
    MessageEncoder messageEncoder = new MessageEncoder();

    IdleStateHandler idleHandler = new IdleStateHandler(IDLE_TIMEOUT,0);

    // Inbound goes from first to last,outbound goes from last to first.
    // i.e. the outside is on the left/top,the inside is on the right/bottom
    ch.pipeline().addLast(lineDecoder).addLast(stringDecoder).addLast(messageDecoder).addLast(idleHandler).addLast(messageHandler)
            .addLast(stringEncoder).addLast(messageEncoder);

}
项目:carbon-transports    文件:HTTPServerChannelInitializer.java   
@Override
public void initChannel(SocketChannel ch) throws Exception {
    if (log.isDebugEnabled()) {
        log.debug("Initializing source channel pipeline");
    }

    ChannelPipeline pipeline = ch.pipeline();

    if (sslConfig != null) {
        pipeline.addLast(Constants.SSL_HANDLER,new SslHandler(new SSLHandlerFactory(sslConfig).build()));
    }

    pipeline.addLast("encoder",new HttpResponseEncoder());
    configureHTTPPipeline(pipeline);

    if (socketIdleTimeout > 0) {
        pipeline.addBefore(
                Constants.HTTP_SOURCE_HANDLER,Constants.IDLE_STATE_HANDLER,new IdleStateHandler(socketIdleTimeout,socketIdleTimeout,TimeUnit.MILLISECONDS));
    }
}
项目:carbon-transports    文件:HTTPClientRedirectTestCase.java   
/**
 * When the maximum redirect count reached,channel should not do any more redirects.
 *
 * @throws URISyntaxException
 * @throws IOException
 */
@Test
public void unitTestForRedirectLoop() throws URISyntaxException,IOException {
    EmbeddedChannel embeddedChannel = new EmbeddedChannel();
    embeddedChannel.pipeline().addLast(new HttpResponseDecoder());
    embeddedChannel.pipeline().addLast(new HttpRequestEncoder());
    embeddedChannel.pipeline()
            .addLast(Constants.IDLE_STATE_HANDLER,new IdleStateHandler(50000,50000,TimeUnit.MILLISECONDS));
    embeddedChannel.pipeline().addLast(new RedirectHandler(null,false,false));
    HttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,HttpResponseStatus.TEMPORARY_REDIRECT,Unpooled.EMPTY_BUFFER);
    response.headers().set(HttpHeaders.Names.LOCATION,FINAL_DESTINATION);
    embeddedChannel.attr(Constants.ORIGINAL_REQUEST)
            .set(createHttpRequest(Constants.HTTP_GET_METHOD,FINAL_DESTINATION));
    embeddedChannel.attr(Constants.RESPONSE_FUTURE_OF_ORIGINAL_CHANNEL).set(new HttpResponseFutureImpl());
    TargetChannel targetChannel = new TargetChannel(null,null);
    targetChannel.setChannel(embeddedChannel);
    embeddedChannel.attr(Constants.TARGET_CHANNEL_REFERENCE).set(targetChannel);
    embeddedChannel.attr(Constants.REDIRECT_COUNT).set(5);
    embeddedChannel.writeInbound(response);
    embeddedChannel.writeInbound(LastHttpContent.EMPTY_LAST_CONTENT);
    assertNull(embeddedChannel.readOutbound());
}
项目:blynk-server    文件:MQTTHardwareServer.java   
public MQTTHardwareServer(Holder holder) {
    super(holder.props.getProperty("listen.address"),holder.props.getIntProperty("hardware.mqtt.port"),holder.transportTypeHolder);

    int hardTimeoutSecs = holder.limits.hardwareIdleTimeout;
    MqttHardwareLoginHandler mqttHardwareLoginHandler = new MqttHardwareLoginHandler(holder);
    HardwareChannelStateHandler hardwareChannelStateHandler =
            new HardwareChannelStateHandler(holder.sessionDao,holder.gcmWrapper);

    channelInitializer = new ChannelInitializer<SocketChannel>() {
        @Override
        protected void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline()
                .addLast("MqttIdleStateHandler",new IdleStateHandler(hardTimeoutSecs,hardTimeoutSecs,0))
                .addLast(hardwareChannelStateHandler)
                .addLast(new MqttDecoder())
                .addLast(MqttEncoder.INSTANCE)
                .addLast(mqttHardwareLoginHandler)
                .addLast(new HardwareNotLoggedHandler());
        }
    };

    log.debug("hard.socket.idle.timeout = {}",hardTimeoutSecs);
}
项目:blynk-server    文件:BlynkInternalLogic.java   
private void parseHardwareInfo(ChannelHandlerContext ctx,String[] messageParts,HardwareStateHolder state,int msgId) {
    HardwareInfo hardwareInfo = new HardwareInfo(messageParts);
    int newHardwareInterval = hardwareInfo.heartbeatInterval;

    log.trace("Info command. heartbeat interval {}",newHardwareInterval);

    if (hardwareIdleTimeout != 0 && newHardwareInterval > 0) {
        int newReadTimeout = (int) Math.ceil(newHardwareInterval * 2.3D);
        log.debug("Changing read timeout interval to {}",newReadTimeout);
        ctx.pipeline().replace(IdleStateHandler.class,"H_IdleStateHandler_Replaced",new IdleStateHandler(newReadTimeout,newReadTimeout,0));
    }

    DashBoard dashBoard = state.dash;
    Device device = state.device;

    if (device != null) {
        otaManager.initiateHardwareUpdate(ctx,state.userKey,hardwareInfo,dashBoard,device);
        device.hardwareInfo = hardwareInfo;
        dashBoard.updatedAt = System.currentTimeMillis();
    }

    ctx.writeAndFlush(ok(msgId),ctx.voidPromise());
}
项目:blynk-server    文件:HardwareServer.java   
public HardwareServer(Holder holder) {
    super(holder.props.getProperty("listen.address"),holder.props.getIntProperty("hardware.default.port"),holder.transportTypeHolder);

    final int hardTimeoutSecs = holder.limits.hardwareIdleTimeout;
    final HardwareLoginHandler hardwareLoginHandler = new HardwareLoginHandler(holder,port);
    final HardwareChannelStateHandler hardwareChannelStateHandler =
            new HardwareChannelStateHandler(holder.sessionDao,holder.gcmWrapper);
    final AlreadyLoggedHandler alreadyLoggedHandler = new AlreadyLoggedHandler();

    channelInitializer = new ChannelInitializer<SocketChannel>() {
        @Override
        protected void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline()
                    .addLast("H_IdleStateHandler",0))
                    .addLast("H_ChannelState",hardwareChannelStateHandler)
                    .addLast("H_MessageDecoder",new MessageDecoder(holder.stats))
                    .addLast("H_MessageEncoder",new MessageEncoder(holder.stats))
                    .addLast("H_Login",hardwareLoginHandler)
                    .addLast("H_NotLogged",new HardwareNotLoggedHandler())
                    .addLast("H_AlreadyLogged",alreadyLoggedHandler);
        }
    };

    log.debug("hard.socket.idle.timeout = {}",hardTimeoutSecs);
}
项目:blynk-server    文件:HardwareSSLServer.java   
public HardwareSSLServer(Holder holder) {
    super(holder.props.getProperty("listen.address"),holder.props.getIntProperty("hardware.ssl.port"),holder.transportTypeHolder);

    HardwareLoginHandler hardwareLoginHandler = new HardwareLoginHandler(holder,port);
    HardwareChannelStateHandler hardwareChannelStateHandler =
            new HardwareChannelStateHandler(holder.sessionDao,holder.gcmWrapper);
    AlreadyLoggedHandler alreadyLoggedHandler = new AlreadyLoggedHandler();

    final int hardTimeoutSecs = holder.limits.hardwareIdleTimeout;

    this.channelInitializer = new ChannelInitializer<SocketChannel>() {
        @Override
        protected void initChannel(SocketChannel ch) throws Exception {
            ch.pipeline()
                .addLast("HSSL_ReadTimeout",0))
                .addLast("HSSL",holder.sslContextHolder.sslCtx.newHandler(ch.alloc()))
                .addLast("HSSLChannelState",hardwareChannelStateHandler)
                .addLast("HSSLMessageDecoder",new MessageDecoder(holder.stats))
                .addLast("HSSLMessageEncoder",new MessageEncoder(holder.stats))
                .addLast("HSSLLogin",hardwareLoginHandler)
                .addLast("HSSLNotLogged",new HardwareNotLoggedHandler())
                .addLast("HSSLAlreadyLogged",alreadyLoggedHandler);
        }
    };
}
项目:blynk-server    文件:BlynkInternalLogicTest.java   
@Test
public void testCorrectBehavior() {
    BlynkInternalLogic logic = new BlynkInternalLogic(otaManager,props.getIntProperty("hard.socket.idle.timeout",0));

    when(ctx.pipeline()).thenReturn(pipeline);
    when(ctx.alloc()).thenReturn(allocator);
    when(allocator.ioBuffer(anyInt())).thenReturn(byteBuf);
    when(byteBuf.writeByte(eq(0))).thenReturn(byteBuf);
    when(byteBuf.writeShort(eq(1))).thenReturn(byteBuf);
    when(byteBuf.writeShort(eq(200))).thenReturn(byteBuf);

    User user = new User();
    user.profile = new Profile();
    DashBoard dashBoard = new DashBoard();
    dashBoard.id = 1;
    user.profile.dashBoards = new DashBoard[] {dashBoard};
    Device device = new Device();
    HardwareStateHolder hardwareStateHolder = new HardwareStateHolder(user,device);

    BlynkInternalMessage hardwareInfoLogic = new BlynkInternalMessage(1,"ver 0.3.2-beta h-beat 60 buff-in 256 dev ESP8266".replaceAll(" ","\0"));
    logic.messageReceived(ctx,hardwareStateHolder,hardwareInfoLogic);

    verify(pipeline).replace(eq(IdleStateHandler.class),eq("H_IdleStateHandler_Replaced"),any());
    verify(ctx).writeAndFlush(any(),any());
}
项目:tsdblite    文件:Server.java   
/**
     * {@inheritDoc}
     * @see io.netty.channel.ChannelInitializer#initChannel(io.netty.channel.Channel)
     */
    @Override
    protected void initChannel(final SocketChannel ch) throws Exception {
        createdChannels.increment();
        channelGroup.add(ch);       
        ch.closeFuture().addListener(new GenericFutureListener<Future<? super Void>>() {
            @Override
            public void operationComplete(Future<? super Void> future) throws Exception {
                log.info("\n\t==============================\n\tChannel Closed [{}]\n\t==============================",ch.id());
//              log.error("Close Back trace",new Exception());
//              if(future.cause()!=null) {
//                  log.error("Close fail",future.cause());                    
//              }
            }
        });
        ch.pipeline().addLast("IdleState",60));
        ch.pipeline().addLast("ProtocolSwitch",new ProtocolSwitch());
    }
项目:remote-procedure-call    文件:ClientChannelInitializer.java   
@Override
protected void initChannel(SocketChannel channel) throws Exception {
    ChannelPipeline pipeline = channel.pipeline();

    // use the IdleStateHandler to get notified if you haven't received or sent data for dozens of seconds.
    // If this is the case,a heartbeat will be written to the remote peer,and if this fails the connection is closed.
    pipeline.addLast(this.executorGroup,"idleStateHandler",Constants.HEARTBEAT_PERIOD,TimeUnit.SECONDS));
    pipeline.addLast(this.executorGroup,"heartbeatHandler",heartbeatHandler);

    if (this.compression) {
        // Enable stream compression
        pipeline.addLast(this.executorGroup,"deflater",ZlibCodecFactory.newZlibEncoder(ZlibWrapper.GZIP));
        pipeline.addLast(this.executorGroup,"inflater",ZlibCodecFactory.newZlibDecoder(ZlibWrapper.GZIP));
    }

    // NUL (0x00) is a message delimiter
    pipeline.addLast(this.executorGroup,"framer",Delimiters.nulDelimiter()));

    // string encoder / decoder are responsible for encoding / decoding an UTF-8 string
    pipeline.addLast(this.executorGroup,"encoder",utf8Encoder);
    pipeline.addLast(this.executorGroup,"decoder",utf8Decoder);

    // client hander is responsible for as a remoting call stub
    pipeline.addLast(this.executorGroup,"clientHandler",clientHandler);
}
项目:aj8    文件:JagGrabChannelHandler.java   
@Override
protected void initChannel(SocketChannel channel) {
    ChannelPipeline pipeline = channel.pipeline();

    // decoders
    pipeline.addLast("framer",new DelimiterBasedFrameDecoder(MAX_REQUEST_LENGTH,DOUBLE_LINE_FEED_DELIMITER));
    pipeline.addLast("string-decoder",new StringDecoder(JAGGRAB_CHARSET));
    pipeline.addLast("jaggrab-decoder",new JagGrabRequestDecoder());

    // encoders
    pipeline.addLast("jaggrab-encoder",new JagGrabResponseEncoder());

    // handler
    pipeline.addLast("timeout",new IdleStateHandler(NetworkConstants.IDLE_TIME,0));
    pipeline.addLast("handler",handler);
}

相关文章

买水果
比较全面的redis工具类
gson 反序列化到多态子类
java 版本的 mb_strwidth
JAVA 反转字符串的最快方法,大概比StringBuffer.reverse()性...
com.google.gson.internal.bind.ArrayTypeAdapter的实例源码...