ホームページ バックエンド開発 PHPチュートリアル Apache min 学習ノート (3) - IoService

Apache min 学習ノート (3) - IoService

Jan 18, 2017 am 09:51 AM
apache Mina

この章では、サーバーとクライアントですべての I/O サービスを提供する基本クラスである MINA の IoService について説明します。これは、ピアとのメッセージの送受信、セッション、接続などの管理に使用されます。


これは、サーバー側の IoAcceptor とクライアント側の IoConnector によって実装されるインターフェイスです。

このインターフェイスについては、次のパートで紹介します:

IoServiceの概要
IoServiceの詳細
IoAcceptor
IoConnector

IoServiceの概要

IoServiceは、基本的なI/Oサービスを提供し、MinaフレームワークでI/Oセッションを管理します。それはミナにとって非常に重要な部分です。

Apache min 学習ノート (3) - IoService

上の図で述べたように、IoService には多くの役割があります:


セッション管理
フィルターチェーン管理
ハンドラー呼び出し
統計​​管理
リスニング管理
通信管理

このインターフェースのメソッド

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 クラスとインターフェイスです

Apache min 学習ノート (3) - IoService

IoConnector


NioSocketConnector : 非ブロッキングソケットトランスポート IoConnector
NioDatagramConnector : 非ブロッキング UDP トランスポート IoConnector
AprSocketConnector : ブロッキングソケットトランスポート年率に基づく
ProxyConnector : プロキシ サポートを提供する IoConnector
SerialConnector : シリアル トランスポート用の IoConnector
VmPipeConnector : VM 内の IoConnector

Apache min 学習ノート (3) - IoService


以下は概要としての例です:


たとえば、 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)!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

H5プロジェクトの実行方法 H5プロジェクトの実行方法 Apr 06, 2025 pm 12:21 PM

H5プロジェクトを実行するには、次の手順が必要です。Webサーバー、node.js、開発ツールなどの必要なツールのインストール。開発環境の構築、プロジェクトフォルダーの作成、プロジェクトの初期化、コードの書き込み。開発サーバーを起動し、コマンドラインを使用してコマンドを実行します。ブラウザでプロジェクトをプレビューし、開発サーバーURLを入力します。プロジェクトの公開、コードの最適化、プロジェクトの展開、Webサーバーの構成のセットアップ。

XMLでPDFをエクスポートする方法 XMLでPDFをエクスポートする方法 Apr 03, 2025 am 06:45 AM

XMLをPDFにエクスポートするには、XSLTを使用し、XMLデータバインディングライブラリを使用する方法は2つあります。 XSLT:XSLT StyleSheetを作成し、XSLTプロセッサを使用してXMLデータを変換するPDF形式を指定します。 XMLデータバインディングライブラリ:XMLデータバインディングライブラリのインポートPDFドキュメントオブジェクトの作成XMLデータエクスポートPDFファイル。 PDFファイルに適している方法は、要件に依存します。 XSLTは柔軟性を提供しますが、データバインディングライブラリは簡単に実装できます。単純な変換のために、データバインディングライブラリの方が優れており、複雑な変換の場合、XSLTがより適しています。

Apacheのトラブルシューティング:一般的なエラーの診断と解決 Apacheのトラブルシューティング:一般的なエラーの診断と解決 Apr 03, 2025 am 12:07 AM

Apacheエラーは、ログファイルを表示することで診断および解決できます。 1)error.logファイルを表示する、2)GREPコマンドを使用して特定のドメイン名でエラーをフィルタリングし、3)ログファイルを定期的にクリーニングして構成を最適化し、4)監視ツールを使用してリアルタイムで監視およびアラートします。これらの手順を通じて、Apacheエラーは効果的に診断および解決できます。

pom.xmlを生成する方法 pom.xmlを生成する方法 Apr 03, 2025 am 06:00 AM

POM.xmlファイルを生成するには次の方法があります。MavenArchetypeを使用して、特定の種類のプロジェクトのPOM.xmlファイルを自動的に生成する定義済みのプロジェクトテンプレートを提供します。 Maven Helperプラグインを使用して、pom.xmlファイルを生成するコマンドを提供します。プロジェクトのpom.xmlファイルをカスタマイズするには、手動で作成します。

サーバー側でキャラクターエンコードを設定する方法ブートストラップテーブルを解決する方法 サーバー側でキャラクターエンコードを設定する方法ブートストラップテーブルを解決する方法 Apr 07, 2025 pm 12:00 PM

サーバー側に文字エンコードを設定して、文字化けしたブートストラップテーブルを解決するには、次の手順に従う必要があります。サーバー文字のエンコーディングを確認します。サーバー構成ファイルを編集します。 EncodingをUTF-8に設定します。サーバーを保存して再起動します。エンコーディングを確認します。

xamppでmysqlを起動できません xamppでmysqlを起動できません Apr 08, 2025 pm 03:15 PM

ポート競合、構成ファイルエラー、システム許可の不十分、サービス依存関係の問題、インストールの問題など、XAMPPがMySQLを起動できない理由はたくさんあります。トラブルシューティング手順は次のとおりです。1)ポートの競合を確認します。 2)構成ファイルを確認します。 3)システムの許可を確認します。 4)サービスの依存関係を確認します。 5)mysqlを再インストールします。これらの手順に従うと、MySQLの起動が失敗する問題を見つけて解決できます。

ブートストラップページをプレビューする方法 ブートストラップページをプレビューする方法 Apr 07, 2025 am 10:06 AM

Bootstrapページのプレビュー方法は次のとおりです。BrowserでHTMLファイルを直接開きます。ライブサーバープラグインを使用してブラウザを自動的に更新します。ローカルサーバーを構築して、オンライン環境をシミュレートします。

phpmyAdminの脆弱性の概要 phpmyAdminの脆弱性の概要 Apr 10, 2025 pm 10:24 PM

PHPMyAdminセキュリティ防衛戦略の鍵は次のとおりです。1。PHPMyAdminの最新バージョンを使用し、PHPとMySQLを定期的に更新します。 2.アクセス権を厳密に制御し、.htaccessまたはWebサーバーアクセス制御を使用します。 3.強力なパスワードと2要素認証を有効にします。 4.データベースを定期的にバックアップします。 5.機密情報が公開されないように、構成ファイルを慎重に確認します。 6。Webアプリケーションファイアウォール(WAF)を使用します。 7.セキュリティ監査を実行します。 これらの測定は、不適切な構成、古いバージョン、または環境セキュリティのリスクにより、PHPMyAdminによって引き起こされるセキュリティリスクを効果的に削減し、データベースのセキュリティを確保することができます。

See all articles