Java NIO 実装をJBoss Nettyに移行することを検討しています。JBoss Nettyは、私が実装したよりもはるかにクリーンなモデルを提供するからです。この実装では、独自のプロトコルを使用して、TCP 経由でコンポーネントへの多数のクライアント接続を管理します。
Netty では見られない私の実装の 1 つの側面は、任意のタイムアウトを設定する機能です。
- コンポーネントからデータが読み取られるのを待ちます。Netty にはタイムアウト値があることは知ってい
ReadTimeoutHandler
ますが、コンポーネントがステート マシンを通過するときに、コンポーネントによってタイムアウト値を簡単に変更/オフにできますか? - コンポーネントに再接続できるように、時間が経過するのを待ちます (切断後にコンポーネントを再起動する時間を与えるため)。これは通信とはまったく関係のない単純なタイムアウトですが、他の通信関連のタイムアウトと同じように、タイムアウト「イベント/例外」をハンドラ クラスに提示したいと考えています。
このタイムアウト メカニズムは、Netty を使用して実現できますか?
結論: 独自のスレッド内で実行されるタイムアウト メカニズムを実装する必要があることを考えると、結局のところ、Netty の使用に変換するつもりはありません。