Windows 7 で Apache websocket モジュールを使用する作業を行っています。 https://github.com/disconnect/apache-websocketの「Disconnect」から提供されたコードを使用し、ガイダンスに従って Windows 7 で実行できるようにコンパイルしました。 http://www.calazan.com/how-to-compile-and-build-apache-modules-on-windows-using-visual-studio/から。「ws_switch_plugin」というプラグインが関連付けられています。これは、Disconnect の「echo」プラグインの例が使用されているのと同じ方法で websocket モジュールから呼び出されます。
Xampp 1.8.3 インストール内で Apache 2.4.7 を実行しています。Disconnect からのアドバイスに従って、httpd.conf ファイルを構成しました。
私が見る奇妙な状況は、Apache の起動時に websocket モジュールを 4 回ロードし、毎回プラグインの「init」関数を呼び出すように見えることです。起動時に、プラグインの 2 つのインスタンスがすぐに破棄されますが、2 つのインスタンスは開いたままです。プラグインへのハンドルに基づくさらなるデバッグから、作成された最後のプラグインのみが使用されているようです。Apache が停止すると、両方の未処理のプラグインが破棄されます。
以下はデバッグ ファイルからのリストで、Apache から呼び出されたときの切断 websocket モジュールからの関数名がリストされています。Apache を起動すると、websocket モジュールの 4 つの明らかな負荷に対応する関数呼び出しの 4 つのグループが表示されます。最後に、Apache を停止すると、プラグインの 2 つのインスタンスが破棄されていることが示されます。
なぜこれが起こっているのか誰でも説明できますか?Apacheにモジュールを1回だけロードさせる方法があるかどうかを理解し、理想的には学びたいと思います。
(WHEN STARTING APACHE ...)
mod_websocket_register_hooks
mod_websocket_create_dir_config path NULL
mod_websocket_create_dir_config path /ws_switch_plugin
mod_websocket_create_dir_config apr_pcalloc OK
mod_websocket_conf_handler
plugin ws_switch_plugin_init
mod_websocket_conf_handler plugin handle 0079B2F0
mod_websocket_conf_handler response OK
mod_websocket_cleanup_config
DESTROY plugin
mod_websocket_register_hooks
mod_websocket_create_dir_config path NULL
mod_websocket_create_dir_config path /ws_switch_plugin
mod_websocket_create_dir_config apr_pcalloc OK
mod_websocket_conf_handler
plugin ws_switch_plugin_init
mod_websocket_conf_handler plugin handle 007A30C8
mod_websocket_conf_handler response OK
mod_websocket_register_hooks
mod_websocket_create_dir_config path NULL
mod_websocket_create_dir_config path /ws_switch_plugin
mod_websocket_create_dir_config apr_pcalloc OK
mod_websocket_conf_handler
plugin ws_switch_plugin_init
mod_websocket_conf_handler plugin handle 00410278
mod_websocket_conf_handler response OK
mod_websocket_cleanup_config
DESTROY plugin
mod_websocket_register_hooks
mod_websocket_create_dir_config path NULL
mod_websocket_create_dir_config path /ws_switch_plugin
mod_websocket_create_dir_config apr_pcalloc OK
mod_websocket_conf_handler
plugin ws_switch_plugin_init
mod_websocket_conf_handler plugin handle 00418050
mod_websocket_conf_handler response OK
(WHEN STOPPING APACHE ...)
mod_websocket_cleanup_config
DESTROY plugin
mod_websocket_cleanup_config
DESTROY plugin