Apache min 学習ノート (4) - セッション
セッションは Apache のコアです。クライアント接続が到着すると、接続が閉じられるまで新しいセッションが作成されます。セッションは接続やさまざまな情報を保存するために使用されます。
セッションには以下の状態があります:
Connected : the session has been created and is available Idle : the session hasn't processed any request for at least a period of time (this period is configurable) Idle for read : no read has actually been made for a period of time Idle for write : no write has actually been made for a period of time Idle for both : no read nor write for a period of time Closing : the session is being closed (the remaining messages are being flushed, cleaning up is not terminated) Closed : The session is now closed, nothing else can be done to revive it.
次の図はセッションの状態遷移関係を示しています:
以下のパラメータはセッションの設定に使用できます
受信バッファサイズ
送信バッファサイズ
アイドル時間
書き込みtimeOut
ユーザー定義属性の管理:
たとえば、セッションが確立されてからユーザーが送信したリクエストの数を追跡したい場合は、このマッピングに簡単に保存できます。キーを作成してそれを関連付けるだけです。値。
... int counterValue = session.getAttribute( "counter" ); session.setAttribute( "counter", counterValue + 1 ); ...
キーと値のペアを使用して、セッションに属性を保存します。このキーと値のペアは、セッション コンテナーを通じて読み取り、追加、削除できます。
コンテナを定義する
前述したように、このコンテナはキー/値コンテナであり、デフォルトではマッピングになります。もちろん、他のデータ構造として定義することもできます。セッションが作成されると、コンテナを作成するためのインターフェイスとファクトリを実装できます。次のコード スニペットは、セッションの初期化中にコンテナを作成する方法を示しています (理解できません、これはどういう意味ですか?)
protected final void initSession(IoSession session, IoFuture future, IoSessionInitializer sessionInitializer) { ... try { ((AbstractIoSession) session).setAttributeMap(session.getService() .getSessionDataStructureFactory().getAttributeMap(session)); } catch (IoSessionInitializationException e) { throw e; } catch (Exception e) { throw new IoSessionInitializationException( "Failed to initialize an attributeMap.", e); }
。また、別の種類のコンテナを定義したい場合に実装できるファクトリ インターフェイスは次のとおりです:
public interface IoSessionDataStructureFactory { /** * Returns an {@link IoSessionAttributeMap} which is going to be associated * with the specified <tt>session</tt>. Please note that the returned * implementation must be thread-safe. */ IoSessionAttributeMap getAttributeMap(IoSession session) throws Exception; }
フィルタリングチェーン
各セッションは、受信リクエストまたは送信データを処理するためにいくつかのフィルタチェーンに関連付けられます。各セッションには個別のフィルター チェーンが指定され、ほとんどの場合、セッション間で同じフィルター チェーンの多くが使用されます。
統計
Each session also keep a track of records about what has been done for the session : number of bytes received/sent number of messages received/sent Idle status throughput and many other useful informations. Handler
最後になりましたが、プログラム メッセージを処理するにはハンドラーをセッションにアタッチする必要があります。このハンドラーは、単に write メソッドを呼び出すだけで、応答としてパッケージも送信します:
... session.write( <your message> ); ...
上記は、Apache Min 学習ノート (4) - セッションの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト ( www.php.cn )!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











ApacheでCGIディレクトリを設定するには、次の手順を実行する必要があります。「CGI-Bin」などのCGIディレクトリを作成し、Apacheの書き込み許可を付与します。 Apache構成ファイルに「Scriptalias」ディレクティブブロックを追加して、CGIディレクトリを「/cgi-bin」URLにマッピングします。 Apacheを再起動します。

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

Apacheサーバーでバージョンを表示するには3つの方法があります。コマンドライン(Apachectl -vまたはapache2ctl -v)を介して、サーバーステータスページ(http://&lt; server ipまたはdomain name&gt;/server -status)を確認します。

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Apacheバージョンを表示する方法は? Apache Serverを起動する:sudo service apache2を使用してサーバーを起動します。バージョン番号の表示:次のメソッドのいずれかを使用してバージョンを表示します。コマンドライン:apache2 -vコマンドを実行します。サーバーステータスページ:WebブラウザーでApacheサーバーのデフォルトポート(通常80)にアクセスすると、バージョン情報がページの下部に表示されます。

ApacheでZendを構成する方法は? Apache WebサーバーでZend Frameworkを構成する手順は次のとおりです。ZendFrameworkをインストールし、Webサーバーディレクトリに抽出します。 .htaccessファイルを作成します。 Zend Application Directoryを作成し、index.phpファイルを追加します。 Zend Application(Application.ini)を構成します。 Apache Webサーバーを再起動します。

Apacheは、次の理由で起動できません。構成ファイル構文エラー。他のアプリケーションポートとの競合。権限の問題。メモリから。デッドロックを処理します。デーモン障害。 Selinux許可の問題。ファイアウォールの問題。ソフトウェアの競合。

Apacheから追加のservernameディレクティブを削除するには、次の手順を実行できます。追加のservernameディレクティブを識別して削除します。 Apacheを再起動して変更を有効にします。構成ファイルを確認して、変更を確認します。サーバーをテストして、問題が解決されていることを確認します。
