Dies ist ein ziemlich häufiges Problem, aber ich kann keine Lösung für meinen speziellen Fall finden. Ich verwende Glassfish 4.1.1 und meine Anwendung implementiert Websockets.WebSockets nicht hinter Proxy angeschlossen
Auf einer Client-Seite zu WS-Server einfach durch Ich verbinde:
var serviceLocation = "ws://" + window.location.host + window.location.pathname + "dialog/";
var wsocket = new WebSocket(serviceLocation + token_var);
Auf einem Server-Seite WebSockets über @ServerEndpoint Funktionalität implementiert und sieht sehr häufig:
@ServerEndpoint(value = "/dialog/{token}", decoders = DialogMessageDecoder.class)
public class DialogWebsoketEndpoint {
@OnOpen
public void open(final Session session, @PathParam("token") final String token) { ... }
etc.
}
Alles funktioniert bis zu dem Moment, wenn der Kunde versucht, sich hinter dem Proxy zu verbinden. Mit diesem Test: http://websocketstest.com/ Ich habe festgestellt, dass Computer des Kunden hinter http-Proxy 1.1 funktioniert. Er kann keine Verbindung zu Websockets herstellen, onopen einfach gar nicht. wsoscket.readyState wird niemals 1.
Wie kann ich meinen ServerEndpoint so einstellen, dass dieser Code auch dann funktioniert, wenn der Kunde eine Verbindung hinter dem Proxy herstellt?
Vielen Dank im Voraus!
UPDATE: Ich würde auf diesem Computer einen Screenshot mit websocketstest bieten:
Auf meinem Computer scheint es ähnlich, außer einem: HTTP-Proxy: NEIN.
Hope [this link] (http://stackoverflow.com/questions/29430503/java-websocket-with-proxy) hilft Ihnen – Sanjeev
Ich möchte nicht der Träger von schlechten Nachrichten sein, aber aller Wahrscheinlichkeit nach es ist der Proxy-Server selbst, der Websockets nicht richtig unterstützt. Sie können das nicht weg programmieren, außer mit einem Fallback-Mechanismus zum Polling wie Socket.IO bietet. – Gimby
Gimby, danke für deine Antwort, aber http://websocketstest.com/ zeigte, dass der Handshake (und der Echotest) über den ssl 443 Port erfolgreich war. Also denke ich, dass Websockets mit diesem Proxy-Server arbeiten können. – Luxor