From 809451edf16cbb8464cd7633c6c95c544da0bcd1 Mon Sep 17 00:00:00 2001 From: clemcle81500 Date: Mon, 2 Jun 2025 15:55:40 +0200 Subject: [PATCH] websocket fixing v3 --- .../fencerjudgeback/config/WebSocketConfig.kt | 2 +- .../websocket/controllers/MatchWebSocketController.kt | 11 ++++++----- .../controllers/PlayerWebSocketController.kt | 2 +- .../views => resources/static}/testWebSocketHTML.html | 6 +++--- 4 files changed, 11 insertions(+), 10 deletions(-) rename FencerJudgeBack/src/main/{kotlin/fr/teamflash/fencerjudgeback/views => resources/static}/testWebSocketHTML.html (93%) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/config/WebSocketConfig.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/config/WebSocketConfig.kt index a0da6c2..341b6f1 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/config/WebSocketConfig.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/config/WebSocketConfig.kt @@ -23,7 +23,7 @@ open class WebSocketConfig : WebSocketMessageBrokerConfigurer { override fun registerStompEndpoints(registry: StompEndpointRegistry) { // Register the "/ws" endpoint, enabling SockJS fallback options - registry.addEndpoint("/ws") + registry.addEndpoint("/ws/matches-app") .setAllowedOriginPatterns("*") // Allow connections from any origin (adjust for production) .withSockJS() } diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/MatchWebSocketController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/MatchWebSocketController.kt index 8bb3e06..e75518d 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/MatchWebSocketController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/MatchWebSocketController.kt @@ -6,7 +6,6 @@ import fr.teamflash.fencerjudgeback.services.MatchService import fr.teamflash.fencerjudgeback.websocket.models.MatchUpdateMessage import org.springframework.context.event.EventListener import org.springframework.messaging.handler.annotation.MessageMapping -import org.springframework.messaging.handler.annotation.SendTo import org.springframework.messaging.simp.SimpMessagingTemplate import org.springframework.messaging.simp.stomp.StompHeaderAccessor import org.springframework.stereotype.Controller @@ -14,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.socket.messaging.SessionSubscribeEvent @Controller -@RequestMapping("/ws") +@RequestMapping("/ws/matches") class MatchWebSocketController( private val matchService: MatchService, private val messagingTemplate: SimpMessagingTemplate @@ -22,7 +21,7 @@ class MatchWebSocketController( private val messageHistory = ArrayList() - @MessageMapping("/matches") + @MessageMapping("/all") fun receiveMessage(message: MatchBean) { println("/ws/matches $message") messageHistory.add(message) @@ -37,8 +36,7 @@ class MatchWebSocketController( * Client sends to: /app/match.update * Server broadcasts to: /topic/match.updates */ - @MessageMapping("/match.update") - @SendTo("/topic/match.updates") + @MessageMapping("/update") fun handleMatchUpdate(matchUpdateMessage: MatchUpdateMessage): MatchUpdateMessage { // Create a MatchBean from the update message val matchBean = MatchBean( @@ -73,6 +71,7 @@ class MatchWebSocketController( val headerAccessor = StompHeaderAccessor.wrap(event.message) if (CHANNEL_NAME == headerAccessor.destination) { messagingTemplate.convertAndSend(CHANNEL_NAME, messageHistory) + println("Lancement...") } } @@ -94,8 +93,10 @@ class MatchWebSocketController( broadcastMatchUpdate(match) } + @MessageMapping("/add") fun addMatchtoMainList(match:MatchBean) { matchService.addMatch(match) + messageHistory.add(match) broadcastMatchUpdate(match, MatchUpdateMessage.UpdateType.NEW_MATCH) } } \ No newline at end of file diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/PlayerWebSocketController.kt b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/PlayerWebSocketController.kt index 258ff90..4e31270 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/PlayerWebSocketController.kt +++ b/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/websocket/controllers/PlayerWebSocketController.kt @@ -1,6 +1,5 @@ package fr.teamflash.fencerjudgeback.websocket.controllers -import fr.teamflash.fencerjudgeback.config.CHANNEL_NAME import fr.teamflash.fencerjudgeback.entities.PlayerBean import fr.teamflash.fencerjudgeback.services.PlayerService import fr.teamflash.fencerjudgeback.websocket.models.PlayerUpdateMessage @@ -64,6 +63,7 @@ class PlayerWebSocketController( } } + @MessageMapping fun addPlayerToMainList(playerBean: PlayerBean) { playerService.addPlayer(playerBean) broadcastPlayerUpdate(playerBean, PlayerUpdateMessage.UpdateType.PLAYER_CREATE) diff --git a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/views/testWebSocketHTML.html b/FencerJudgeBack/src/main/resources/static/testWebSocketHTML.html similarity index 93% rename from FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/views/testWebSocketHTML.html rename to FencerJudgeBack/src/main/resources/static/testWebSocketHTML.html index cc5e435..1009354 100644 --- a/FencerJudgeBack/src/main/kotlin/fr/teamflash/fencerjudgeback/views/testWebSocketHTML.html +++ b/FencerJudgeBack/src/main/resources/static/testWebSocketHTML.html @@ -47,8 +47,8 @@