回答:
WebSocket接続は、HTTPまたはHTTPSハンドシェイクから始まります。HTTPを介してページにアクセスする場合、WSまたはWSS(WebSocketセキュア:WS over TLS)を使用できます。ただし、ページがHTTPS経由で読み込まれる場合は、WSSのみを使用できます。ブラウザはセキュリティの「ダウングレード」を許可していません。
HTTPS経由でWebSocketsを使用することはできませんが、TLS経由でWebSocketsを使用することはできます(HTTPSはHTTP over TLSです)。URIで「wss://」を使用するだけです。
最近のバージョンのFirefoxではHTTPSページから非TLS WebSocketを使用できないと思いますが、その逆は問題になりません。
wss://
たws://
。したがって、私はwss://ws.domain.com
apache を使用してプロキシを適用し、WSサーバーが実行されている場所にリクエストをリダイレクトします。例:ws://10.12.23.45:5641/server.php
。そして私はそれが非常に悪い解決策であることを知っています-しかし、それは私にとってはうまくいきます。あなたがApacheの設定を案内してくれるなら、あなたの助けに感謝します。例:どこに置くか.cert
など。
1つの追加の警告(カナカ/ピーターによる回答のほか):WSSを使用していて、サーバー証明書がブラウザーに受け入れられない場合、ブラウザーで表示されるダイアログが表示されない可能性があります(Webページで発生するように)。これは、WebSocketがいわゆる「サブリソース」として扱われ、証明書が/セキュリティ例外/サブリソースに対してレンダリングされないダイアログを受け入れるためです。
alert()
?