Trennen Sie die client-Sitzung von Spring websocket-stomp server
Ich gesucht habe ziemlich viel und war nicht in der Lage diese zu finden: gibt es eine Möglichkeit, eine spring-websocket-stomp server-Verbindung trennen können Sie einen client auf der Grundlage der sessionId (oder wirklich auf Basis überhaupt etwas)?
Scheint es mir, dass, sobald ein client eine Verbindung zu einem server gibt es nichts, das ermöglicht dem server eine Verbindung zum client.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich weiß die API nicht bieten, was Sie suchen, auf server-Seite können Sie nur erkennen, trennen und Veranstaltungen. Wenn Sie möchten, trennen Sie eine bestimmte client-ich denke, Sie muss gehen, für ein kleines workaround, z.B. diese:
Die Problemumgehung ist ein bisschen umständlich, aber es funktioniert.
SubProtocolWebSocketHandler.java
'safterConnectionEstablished()
Methode können Sie Lesen:// WebSocketHandlerDecorator could close the session
Tatsächlich einige Problemumgehungen, die Sie erreichen können, was Sie wollen.
Für die, die Sie tun sollten:
Habe ich Probe spring-boot-Projekt zu zeigen, wie wir das trennen können client-Sitzung von server-Seite:
https://github.com/isaranchuk/spring-websocket-disconnect
Können Sie die Verbindung auch trennen-session durch die Implementierung einer benutzerdefinierten
WebSocketHandlerDecorator
:afterConnectionEstablished
. Ist dieses Szenario möglich?Im Fall der xml-Konfiguration, die Sie verwenden können
<websocket:decorator-factories>
im<websocket:transport>
Ihrer<websocket:message-broker>
.Erstellen Sie benutzerdefinierte
WebSocketHandlerDecorator
undWebSocketHandlerDecoratorFactory
die Umsetzungdecorate
Methode.