2016-05-11 9 views
2

Die ClientWebSocketContainer Frühlings-Klasse kann eine websocket Verbindungssitzung zu einem Remote-Endpunkt bereitzustellen. Obwohl, wenn versucht wird, eine geschlossene Verbindung wieder herzustellen gemacht wird (nach einem gescheiterten Versuch) durch den ClientWebSocketContainer Anschlag mit(), start(), und dann getSession() Methoden, die Verbindung hergestellt ist, aber die ClientWebSocketContainer denken, ist es nicht aufgrund der beim fehlgeschlagenen Versuch eingestellten openConnectionException verbunden.ClientWebSocketContainer - Kann es auf der Client-Seite verwendet werden, um eine Websocket-Verbindung zu erstellen?

@Override 
public void onFailure(Throwable t) { 
    logger.error("Failed to connect", t); 
    ClientWebSocketContainer.this.openConnectionException = t; 
    ClientWebSocketContainer.this.connectionLatch.countDown(); 
} 

Soll ich in der Lage sein, die ClientWebSocketContainer in dieser Art und Weise zu verwenden, oder soll ich meine eigenen Client-Verbindungsmanager erstellen?

Antwort

1

Ich denke, es ist nur ein Fehler, eine Art von Unterlassung in der ClientWebSocketContainer Logik.

Ich habe gerade eine JIRA auf die Frage erhoben. Wird heute behoben werden.

In der Zwischenzeit geben Sie uns mehr Informationen, was ist Ihre Aufgabe?

Die ClientWebSocketContainer basiert auf der ConnectionManagerSupport, wo eine ihrer Implementierung WebSocketConnectionManager ist. Überlegen Sie sich, ob Sie die letzte für den Erhalt der Sitzung verwenden möchten.

Wenn Sie Spring Integration WebSocket Adapter verwenden, haben Sie keine Wahl, wenn Sie nicht Ihre eigene ClientWebSocketContainer Variante implementieren. Ja, es kann vollständig auf dem bestehenden basieren.

+0

Danke für das Feedback! Ich habe eine interessante Situation, wo ich auf einen Server als Client verbinden muß und Daten an den Server schieben. Aus diesem Grund bin ich daran interessiert, die Websocket-Sitzung zu erhalten. IIRC Der WebSocketConnectionManager verfügt über eine Sitzung, bietet jedoch keinen Mechanismus für den Zugriff auf die Sitzung, außer über den Nachrichtenhandler. – Emmet

+0

M-m-m. Man braucht wirklich einen Blick in 'nehmen ': http://docs.spring.io/spring-integration/reference/html/web-sockets.html#web-socket- Ausgangs-Adapter Aber sei bereit SI-4.2.6.RELEASE mit der Lösung für dein Problem wird morgen verfügbar sein! –

+0

Hallo M-m-m, ich erwäge die WebSocketOutboundMessageHandler aber ich konnte nicht bestimmen, wie die Steckdose zu verbinden, wenn die Verbindung einging. Habe ich etwas übersehen? – Emmet