ハマったバカモノは私です。
いざVPSを借りまして、HTTPSでWebsocketを動かしたい!
ローカルで ws:// スキームなら動くのにSSLに対応する為、wss:// にすると動かない現象に見舞われました。
Apacheのリバーシプロキシで一応動きました。
LoadModule proxy_module lib64/httpd/modules/mod_proxy.so LoadModule proxy_ftp_module lib64/httpd/modules/mod_proxy_ftp.so LoadModule proxy_http_module lib64/httpd/modules/mod_proxy_http.so LoadModule proxy_wstunnel_module lib64/httpd/modules/mod_proxy_wstunnel.so LoadModule proxy_ajp_module lib64/httpd/modules/mod_proxy_ajp.so LoadModule headers_module lib64/httpd/modules/mod_headers.so ProxyPass /wss ws://dmain-name:PORT/wss ProxyPassReverse /wss ws://dmain-name:PORT/wss
多分いらないLoadModuleもありそうな気がしますが、、、
すっごい恥ずかしい勘違いをしてたのかもしれません。
バックエンドサーバーを動かすURLは
https://dmain-name:PORT/wss
http://dmain-name:PORT/wss
のどちらでもないって話でした。
ハンドシェイクするサーバーのURLはProxyPassの/wssフォルダとは関係ない所で実行すれば良かったというオチでした。
PORTの能力を分かっていなかったです。
まじでサーバーって難しいです。
またPHPでソケット通信を扱うには下記のモジュールが必要の様です。
//ソケット通信に必要 extension = php_sockets.dll //直接関係ないけど、個人的に入れてる設定 extension = php_openssl.dll extension = php_mbstring.dll default_charset = UTF-8 date.timezone=Asia/Tokyo mbstring.language = Japanese mbstring.internal_encoding = UTF-8