将来リスナーチャネルできるコードの上記部分において網状:チャネルを初期化は、私が代わりに使用するIdleStateHandlerの静的オブジェクトを使用することができる場合、私はパイプラインで静的アイドル状態ハンドラを与え、チャンネル初期化剤で
protected void initChannel(SocketChannel ch) throws Exception {
MessageHandler handler = new MessageHandler(channelGroup);
ch.pipeline().addLast(DECODER, new MessageDecoder())
.addLast(ENCODER, newMessageEncoder())
.addLast(idleExecutor, "idleHandler", new IdleStateHandler(0, 0, 6*60))
.addLast(pipelineExecutor, "handler", handler);
}
すべてのチャンネルの新しいインスタンス。スレッドセーフですか?また
、私はチャンネルに何かを書く
。 私はそれにアイドルリードハンドラを追加しています。しばらく待ってから応答がなければ、私はチャンネルを閉じます。
ChannelPipeline pipeline = channel.pipeline();
pipeline.addAfter(ChannelInitializer.idleExecutor,
"idleHandler", "idleReadHandler",new IdleStateHandler(60, 0, 0));
上記のコードでstatic idleReadHandlerを使用できますか?私が使用しています
ネッティー-4.1.0それはネッティー3.xの https://docs.jboss.org/netty/3.2/api/org/jboss/netty/handler/timeout/IdleStateHandler.html までのJBossドキュメントで共有可能なマークされていた。しかしネッティーで
4.xのドキュメント https://docs.jboss.org/net/3.2/api/org/jboss/netty/handler/timeout/IdleStateHandler.htmlにはありませんでした。だからそれは慎重であるか、偶然に逃したのだろうか? – Peter
それは共有することはできませんので、あなたはFerrybigが言ったように新しいインスタンスを作成する必要があります。 –