-
Notifications
You must be signed in to change notification settings - Fork 3
ws2http2.js
kjunichi edited this page Mar 18, 2013
·
11 revisions
WAN側で使用。
3G回線経由でWebSocketで来た要求をHTTPに変換してHTTP Proxyへ転送する。
HTTP Proxyからの応答をWebSocketに変換して3G回線経由でLAN側に返す。
iPhone4S<-(websocket)-> ws2http2.js<-(http)->HTTP Proxy<->インターネット
8123
WebSocketでやり取りするデータの識別子。 データの送受信が前後することがあるので、クライアントとの間で 識別子が必要となる。
WebSocketでやり取りするデータの本体。Base64エンコードされて格納。
wstohttp,httpendの定義を行う
HTTP Proxyへの接続がされていない場合、
- 接続を行う。
- proxys[data['wid']]に接続したソケットを格納する。
- data['httpdata']をBase64デコードして、HTTP Proxyへ送信する。
HTTP Proxyへの接続がされる場合
- proxys[data['wid']]で接続済みのHTTP Proxyのソケットを取得
- 取得したソケットが切断ずみの場合、WebSocketにhttpendを返す。
- data['httpdata']をBase64デコードして、HTTP Proxyへ送信する。
widに該当のHTTP Proxyのソケットが接続中であれば、 終了させ、proxys[data['wid']]を空にする。
WebSocketへhttptowsメッセージに{httpdata:Base64したHTTP Proxyからの応答, wid:使用したHTTP Proxyのwid}を入れて返す。
WebSocketへhttpendメッセージに{wid:使用したHTTP Proxyのwid}を入れて返す。
- wid aaa
- data['wid'] 作成済みのHTTP Proxyを識別するIDを格納
- data['httpdata'] LAN側のHTTPの内容がBase64化されて格納されている
- proxys HTTP Proxyへのsocket?を複数保持。widで管理。
- proxys[data['wid']] widに対応する作成済みのHTTP Proxyへのソケット
pause
resume