JS、PHP、Python をリッスンするクライアントを持つ NodeJS-socketIO サーバーがあります。プレーンな HTTP/WS チャネルを介して通信が行われると、魅力的に機能します。
今、この通信を保護しようとすると、websocket トランスポートが機能しなくなりました。xhr-polling (ロングポーリング) トランスポートにフォールバックします。Xhr ポーリングは JS クライアントでは引き続き機能しますが、純粋にソケット トランスポートに依存する Python では機能しません。
私が試したこと:
- ノード上で、 http の代わりにhttps (商用証明書を使用) を使用 - ノード経由でページを提供する場合はうまく機能しますが、socketIO では機能しません
- HAProxy経由のプロキシ(1.15-dev19)。HTTPS(HAProxy)からHTTP(Node)へ。Websocket トランスポートを機能させることができず、JSで xhr-polling にフォールバックします。Python はハンドシェイクで502を取得します。
- STunnel経由のプロキシ(HTTPS 用) -> HAProxy(Websocket Proxy) -> Node(SocketIO) - これも機能しません。Python クライアントは引き続きハンドシェイクで 502 を取得します。
- Proxy via Stunnel(HTTPS) -> Node(SocketIO) - これも機能しません。STunnel が websocket プロキシをサポートしているかどうかわからない
- node-http-proxy : websocket で 500 (エラーが発生しました: {"code":"ECONNRESET"} ) をスローし、xhr-polling にフォールバックします
それは一般的なユースケースであり、解決策が存在すると確信しています。本当に助けていただければ幸いです。
前もって感謝します!