この章では、サーバーとクライアントですべての I/O サービスを提供する基本クラスである MINA の IoService について説明します。これは、ピアとのメッセージの送受信、セッション、接続などの管理に使用されます。
これは、サーバー側の IoAcceptor とクライアント側の IoConnector によって実装されるインターフェイスです。
このインターフェイスについては、次のパートで紹介します:
IoServiceの概要
IoServiceの詳細
IoAcceptor
IoConnector
IoServiceの概要
IoServiceは、基本的なI/Oサービスを提供し、MinaフレームワークでI/Oセッションを管理します。それはミナにとって非常に重要な部分です。
セッション管理
フィルターチェーン管理
ハンドラー呼び出し
統計管理
リスニング管理
通信管理
このインターフェースのメソッド
getTransportMetaデータ() ;
IoAcceptor または IoConnector が実行されている場合、このメソッドは、通常、名前 (nio、apr、txtx)、接続タイプ (コネクション型またはコネクションレス) を含む、送信されたメタデータを返します。
addListener
指定されたイベントをリッスンするための IoServiceListener を追加できます
removeListener
指定された IoserviceListener を削除します
isDisposing
サービスが破棄されている場合は、サービスのステータスを返します
isDissolved
サービスが破棄された場合、サービス
dispose
のステータスを返して、サービスによって要求されたすべてのリソースを解放します。ユーザーは、最初にサービスが完全に破棄されたかどうかを確認するために、上記の 2 つのメソッドを使用する必要があります。サービスを終了する場合は、必ずこのメソッドを呼び出してください
getHandler
サービスに関連付けられたメソッドを返します
setHandler
サーバーが受信したリクエストを解決するためのIoHandlerを設定します。このハンドラーにはプログラムロジックが含まれています。
getSessionConfig
セッション設定に戻る
getFilterChainBuilder
フィルターチェーンビルダーに戻る このメソッドは、フィルタリングを追加する必要がある場合に呼び出す必要があります。
IoService の詳細
Ioservice このインターフェイスは、MINA の 2 つの重要なクラス、IoAcceptor と IoConnector によって実装されます。サーバー側では IoAcceptor を選択する必要があり、クライアント側では IoConnector を選択する必要があります。
IoAcceptor
MINA には、すでに実装されているクラスがいくつかあります:
NioSocketAcceptor : 非ブロッキング ソケット トランスポート IoAcceptor
NioDatagramAcceptor : 非ブロッキング UDP トランスポート IoAcceptor
AprSocketAcceptor : APR に基づくブロッキング ソケット トランスポート IoAcceptor
V mPipeSocketアクセプター: VM 内の IoAcceptor
必要な IoAcceptor を選択します。
下の図は IoAcceptor クラスとインターフェイスです
NioSocketConnector : 非ブロッキングソケットトランスポート IoConnector
NioDatagramConnector : 非ブロッキング UDP トランスポート IoConnector
AprSocketConnector : ブロッキングソケットトランスポート年率に基づく
ProxyConnector : プロキシ サポートを提供する IoConnector
SerialConnector : シリアル トランスポート用の IoConnector
VmPipeConnector : VM 内の IoConnector
たとえば、 TCP サーバーを作成するには、次のようなコードを記述します
public TcpServer() throws IOException { // Create a TCP acceptor IoAcceptor acceptor = new NioSocketAcceptor(); // Associate the acceptor to an IoHandler instance (your application) acceptor.setHandler(this); // Bind : this will start the server... acceptor.bind(new InetSocketAddress(PORT)); System.out.println("Server started..."); }このようにして、Tcp サーバーが作成されます。UDP サーバーを作成したい場合は、それを IoAcceptor acceptor = new NioDatagramAcceptor();
に変更できます。
接続を解放するには、
acceptor.dispose(true)フィルタチェーンを追加してサービスに追加します
// Add a logger filter DefaultIoFilterChainBuilder chain = new DefaultIoFilterChainBuilder(); chain.addLast("logger", new LoggingFilter()); // And inject the created chain builder in the service acceptor.setFilterChainBuilder(chain);上記は、Apache Min 学習ノート (3) - IoService の内容です。その他の関連コンテンツについては、注意してください。 PHP 中国語 Web サイト (www.php.cn)!