From 2681ecf35d14ab1e80f3c6afd781ab450444e9a1 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Wed, 19 Feb 2025 12:25:55 +0100 Subject: [PATCH] TD-18: Creating Websocket Handler --- .../MatchmakingWebsocketConfig.java | 25 +++++++++++++++++++ .../MatchmakingWebsocketHandler.java | 11 ++++++++ .../towerdefence/server/session/Channel.java | 1 + 3 files changed, 37 insertions(+) create mode 100644 src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketConfig.java create mode 100644 src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketHandler.java diff --git a/src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketConfig.java b/src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketConfig.java new file mode 100644 index 0000000..53930ed --- /dev/null +++ b/src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketConfig.java @@ -0,0 +1,25 @@ +package de.towerdefence.server.server.channels.matchmaking; + +import de.towerdefence.server.server.channels.connection.ConnectionWebsocketHandler; +import de.towerdefence.server.session.SessionsService; +import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.config.annotation.EnableWebSocket; +import org.springframework.web.socket.config.annotation.WebSocketConfigurer; +import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; + +@AllArgsConstructor +@Configuration +@EnableWebSocket +public class MatchmakingWebsocketConfig implements WebSocketConfigurer { + @Autowired + private final SessionsService sessionsService; + @Override + public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { + registry.addHandler( + new MatchmakingWebsocketHandler(this.sessionsService), + "/ws/matchmaking" + ).setAllowedOrigins("*"); + } +} diff --git a/src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketHandler.java b/src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketHandler.java new file mode 100644 index 0000000..46b0ac4 --- /dev/null +++ b/src/main/java/de/towerdefence/server/server/channels/matchmaking/MatchmakingWebsocketHandler.java @@ -0,0 +1,11 @@ +package de.towerdefence.server.server.channels.matchmaking; + +import de.towerdefence.server.server.JsonWebsocketHandler; +import de.towerdefence.server.session.Channel; +import de.towerdefence.server.session.SessionsService; + +public class MatchmakingWebsocketHandler extends JsonWebsocketHandler { + public MatchmakingWebsocketHandler(SessionsService sessionsService) { + super(Channel.MATCHMAKING, sessionsService); + } +} diff --git a/src/main/java/de/towerdefence/server/session/Channel.java b/src/main/java/de/towerdefence/server/session/Channel.java index 3e4aece..74704d0 100644 --- a/src/main/java/de/towerdefence/server/session/Channel.java +++ b/src/main/java/de/towerdefence/server/session/Channel.java @@ -8,6 +8,7 @@ import lombok.Getter; @AllArgsConstructor public enum Channel { CONNECTION("connection"), + MATCHMAKING("matchmaking"), TIME("time"); private final String jsonName;