これはかなり一般的な問題ですが、私の特定のケースに対する解決策は見つかりません。私は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とスクリーンショットを提供するだろう:私のコンピュータで
それは一つのことを除いて同様のようだ: HTTPプロキシ:NO。
希望[このリンク](http://stackoverflow.com/questions/29430503/java-websocket-with-proxy)はあなたを助けます – Sanjeev
私は悪いニュースのベアラーになりたくはありませんが、それはおそらくすべてWebSocketを適切にサポートしていないプロキシサーバー自体です。それをプログラムすることはできません。ただし、Socket.IOなどのポーリングに対するフォールバックメカニズムがあります。 – Gimby
ギムビー、あなたの答えをありがとう、http://websocketstest.com/ハンドシェーク(とエコーテスト)は、SSL 443ポート経由で成功したことを示した。だから、私はWebSocketがそのプロキシサーバで動作できると思う。 – Luxor