Ein minimaler Gruppenchat auf Basis von Spring Boot und Spring WebFlux mit WebSockets.
Clients verbinden sich per WebSocket mit dem Server und erhalten neue Chat-Nachrichten als Stream in Echtzeit.
- WebSocket-Endpoint:
/ws/chat - Broadcast an alle verbundenen Clients (Multicast)
- Automatisches Buffering bei langsamen Clients
- Nachrichtenformat als Java Record
ChatMessage(user, text, ts)mit UTC-Timestamp - Sehr kleine, übersichtliche Codebasis
→ ideal als Lern-, Demo- oder Unterrichtsprojekt
- Java 17
- Spring Boot 4.0.2
- Spring WebFlux (reaktiv)
- Project Reactor (
Flux,Sinks) - Maven
Die eigentliche Spring-Boot-Anwendung befindet sich im Unterordner chat/.
Wichtige Klassen:
ChatApplication
Einstiegspunkt der Spring-Boot-AnwendungWebSocketConfig
Konfiguriert das WebSocket-Mapping (/ws/chat) und denWebSocketHandlerAdapterChatWebSocketHandler
Nimmt JSON-Nachrichten vom Client entgegen und sendet JSON zurückChatService
Verteilt Nachrichten reaktiv an alle verbundenen Clients (Multicast-Sink)ChatMessage
Datenobjekt (DTO) als Javarecord
cd chat
./mvnw spring-boot:run
# oder:
mvn spring-boot:run