Frage

Ich habe eine einfache Federanwendung mit der Websenfunktionalität und alles funktioniert bisher. Jetzt möchte ich eine Nachricht von meinem Server mit der @sendtouser-Anmerkung an einen bestimmten Client senden.Dies gibt mir den Fehler "Ignorierende Nachricht, keine Hauptinformationen verfügbar".Ich verstehe, dass ich auf meinem Server kein Login habe, sodass jeder Benutzer "anonym" ist und keinen Auftraggeber hat (ich benutze jetzt keine Frühlingssicherheit).Aber jeder Benutzer hat eine Session-ID.Ist es nicht möglich, die Sitzungs-ID irgendwie zu verwenden, um zwischen den Benutzern zu differenzieren?Wie kann ich das erreichen, damit meine Benutzer einen Auftraggeber erhalten, der der Session-ID entspricht?

War es hilfreich?

Lösung

Ich denke, eine Lösung könnte sein, um das Verwenden von @SendToUser zu vermeiden und Raw SimpMessagingTemplate zu verwenden und Nachrichten an ein Ziel zu senden, das Sie für offene Sitzungen steuern.

zB.Unter der Annahme, dass Sie eine Identität für eine neue WebSocker-Sitzung hatten, können Sie eine Warteschlange mit dieser Kennung im Warteschlangennamen abonnieren:

generasacodicetagpre.

Jetzt können Sie auf der Spring WebSocket-Listener-Seite Ihre Antworten mitgenerieren, indem Sie mitgeneriert werden:

generasacodicetagpre.

Andere Tipps

Verwenden Sie generationstabedagagcode und fügen Sie beim Abonnieren "/ Benutzer /" vor der Warteschlange hinzu (nur Teilnehmerseite).Rest arbeitet Magie: -)

statt

generasacodicetagpre.

und

generasacodicetagpre.

Verwendung:

@SendToUser

und

Java Server: @SentToUser("/topic/showResult")

Gebäude auf biju's antwort und mit der stomp-generierten Sitzungs-ID (danke, Mariusz2108 in seiner Antwort auf eine ähnliche Frage ), hier ist das für mich funktioniert (basierend auf Das kanonische Beispiel aus dem Frühling )

Springframework-Client:

generasacodicetagpre.

Javascript Client:

generasacodicetagpre.

Anstelle der STOMP-Sitzungs-ID können Sie die Sitzungs-ID Ihres Webcontainers verwenden (z. B. JSESSOSTID), aber jetzt ist der Cookie nicht standardmäßig zugänglichVon JavaScript (für Tomcat) ist dies eine schwierigere Perspektive.

Versuchen Sie es.Es funktionierte für mich

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top