
STOMP-Push an alle Browser-Clients ist ein Verfahren, bei dem ein Server über eine bestehende WebSocket-Verbindung Nachrichten an alle verbundenen Browser gleichzeitig sendet – ähnlich wie eine Durchsage in einem Flughafen, die alle hören.
In Java Spring Boot wird das typischerweise mit @MessageMapping und SimpMessagingTemplate umgesetzt, wobei convertAndSend(„/topic/global“, nachricht) alle Clients erreicht.
Das ist lesbar, einfach zu debuggen und funktioniert in allen modernen Browsern ohne Flash oder Plug-ins.
Wichtige Merkmale:
– /topic/ = Publish/Subscribe: Alle Empfänger bekommen dieselbe Nachricht (Broadcast)
– /queue/ = Punkt-zu-Punkt: Nur ein Empfänger bekommt die Nachricht (nicht für „an alle”)
– Die Verbindung bleibt offen → keine ständigen HTTP-Requests nötig (kein Polling)
– STOMP ist ein einfaches Text-Protokoll über WebSocket, das leicht zu implementieren ist
So funktioniert’s:
1. Starte die Spring Boot App → Server läuft auf http://localhost:8080
2. Öffne mehrere Browser-Tabs mit http://localhost:8080/index.html
3. Klicke auf “Nachricht senden” in einem Tab
4. Alle Tabs erhalten sofort die Nachricht “Nachricht an alle Browser!”
Das ist die minimalste funktionierende Demo für STOMP-Broadcast an alle Clients.
Spring Boot vs. Quarkus
Für die STOMP-Demo ist Spring Boot besser, weil:
– STOMP native Unterstützung hat (kein manueller Parser)
– Nur ca. 3 Zeilen Broadcast impl.
– Keine WebSocket-Boilerplate nötig ist
– Als Java/Spring-Entwickler man schon das Ökosystem kennt
Quarkus lohnt sich erst, wenn:
Du viele Microservices mit schnellem Scaling hast
– Serverless/Container-Umgebung mit Cold-Start-Constraints
– Speicher extrem limitiert ist
– Du keine STOMP-Bibliotheken brauchst (eigener Protokoll-Stack)
Beide sind valide – die Wahl hängt von deinen spezifischen Anforderungen, nicht von besser/schlechter ab.
Der Code, d.h. die zwei Klassen für die STOMP-Demo sind in meinem Git-Repo zu finden.
