2016-08-16 9 views
7

これはかなり一般的な問題ですが、私の特定のケースに対する解決策は見つかりません。私はGlassfish 4.1.1を使用しています。私のアプリケーションはWebSocketを実装しています。私は単にによってWS-サーバーに接続していたクライアント側でプロキシの後ろに接続されていないWebソケット

:サーバー側のWebSocketで

var serviceLocation = "ws://" + window.location.host + window.location.pathname + "dialog/"; 
var wsocket = new WebSocket(serviceLocation + token_var); 

は@ServerEndpoint機能を経由して実装されており、非常に一般的に見えるされています

@ServerEndpoint(value = "/dialog/{token}", decoders = DialogMessageDecoder.class) 
public class DialogWebsoketEndpoint { 

    @OnOpen 
    public void open(final Session session, @PathParam("token") final String token) { ... } 
etc. 
} 

すべてお客様がプロキシの後ろに接続しようとする瞬間までうまく動作します。 このテストを使用します:http://websocketstest.com/私は、顧客のコンピュータがhttp-proxy 1.1の背後で動作することを発見しました。 彼はWebソケットに接続できません。ただ単に起動しないでください。 wsoscket.readyStateは決して1になりません。

お客様がプロキシの背後に接続している場合でもこのコードを動作させるには、どうすればServerEndpointを調整できますか?

ありがとうございます!

UPDATE:私はそのコンピュータでwebsocketstestとスクリーンショットを提供するだろう:私のコンピュータでenter image description here

それは一つのことを除いて同様のようだ: HTTPプロキシ:NO。

+0

希望[このリンク](http://stackoverflow.com/questions/29430503/java-websocket-with-proxy)はあなたを助けます – Sanjeev

+1

私は悪いニュースのベアラーになりたくはありませんが、それはおそらくすべてWebSocketを適切にサポートしていないプロキシサーバー自体です。それをプログラムすることはできません。ただし、Socket.IOなどのポーリングに対するフォールバックメカニズムがあります。 – Gimby

+0

ギムビー、あなたの答えをありがとう、http://websocketstest.com/ハンドシェーク(とエコーテスト)は、SSL 443ポート経由で成功したことを示した。だから、私はWebSocketがそのプロキシサーバで動作できると思う。 – Luxor

答えて

9

質問状態へのコメントと同じくらい、プロキシはWebSocketを適切にサポートしていないようです。

これは一般的な問題です(一部の携帯電話会社では、Webソケット接続を中断するプロキシがあります)。解決策は、TLS/SSL接続を使用することです。

主に、一部のプロキシがWebsocketリクエストヘッダーを「修正」(読み込み:破損)しているために問題が発生します。

ただし、TLS/SSLを使用している場合、プロキシはヘッダーデータ(暗号化されている)を読み取ることができず、ほとんどのプロキシでデータがパススルーされます。

これは、ヘッダーが安全に相手に到着し、プロキシが(ほとんどの場合)接続を無視することを意味します。これは接続タイムアウトに関する問題を引き起こしますが、通常は問題を解決します。ブラウザが暗号化されたコンテンツと非暗号化されたコンテンツを混合からクライアントを保護すること

EDIT

注意してください。 TLS/SSL接続を使用する場合は、を使用して、スクリプトがws接続を開始するようにしてください。

+1

ありがとうございます!私たちは試してみましょう! – Luxor

+0

@Luxorは成功しましたか? – Gimby

+0

@ジンビー、はい!これはhttps/ssl(wssプロトコルを使用)経由で動作します。ミストには大変感謝しています!私はまた答えを最高のものとしてマークしました! – Luxor

関連する問題