ページ

2010年12月9日

WebSocketとプロキシ

プロキシ配下でWebSocketを使おうとしても、通信ができないと思っていました。わざわざ80番ポートをわざわざ使うように変更したぐらいなので、なぜだろうと不思議でした。この記事によると、バグはあるとしても通るはずだと。WebSocketのプロトコルにアップグレードする前にGETのコンテンツ領域(?)でデータを送信し始めるのはHTTPの仕様上よくないし、それをハンドリングでいないプロキシはいるだろう、そのせいで通信ができないということでした。なるほどです。

さて、会社のプロキシもPOSTの時にContent-Lengthがなかったら、POSTされないとか変なことがあったので、GETでデータの垂れ流しなんてもってのほかです。というか、PROXY経由でSubversionをつかおうとしたとき、GET/POST/HEAD以外のメソッドが全然使えない設定になっていた過去があるぐらいです。こっそり直したのですが。

さて、WebSocketの通信は最初CONNECTをするらしいです。会社の環境だとまず、ここで失敗します。HTTPSじゃないとCONNECTしないようにしているみたい。

そんなわけで、プロキシを迂回する経路ができたのでした。

2 件のコメント:

匿名 さんのコメント...

http://kumama.org/2010/03/websockets-proxy-trick/

CONNECT後、proxyはTCPの中継しかしないのであんまりGETのContent-Lengthの話は関係ないかも知れません。

liris さんのコメント...

CONNECTされたら後はデータの垂れ流しなので、そこをどうこう考える必要はなさそうですね。

CONNECTさえできれば・・・