TD-18: Refactor Channel Registration
This commit is contained in:
parent
2681ecf35d
commit
41509b6242
5 changed files with 36 additions and 74 deletions
|
@ -17,7 +17,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public abstract class JsonWebsocketHandler extends TextWebSocketHandler {
|
public abstract class JsonWebsocketHandler extends TextWebSocketHandler {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(JsonWebsocketHandler.class);
|
private static final Logger logger = LoggerFactory.getLogger(JsonWebsocketHandler.class);
|
||||||
protected final Channel channel;
|
public final Channel channel;
|
||||||
protected final SessionsService sessionsService;
|
protected final SessionsService sessionsService;
|
||||||
protected final Map<WebSocketSession, Player> sessionPlayers = new ConcurrentHashMap<>();
|
protected final Map<WebSocketSession, Player> sessionPlayers = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package de.towerdefence.server.server.channels;
|
||||||
|
|
||||||
|
import de.towerdefence.server.server.JsonWebsocketHandler;
|
||||||
|
import de.towerdefence.server.server.channels.connection.ConnectionWebsocketHandler;
|
||||||
|
import de.towerdefence.server.server.channels.matchmaking.MatchmakingWebsocketHandler;
|
||||||
|
import de.towerdefence.server.server.channels.time.TimeWebsocketHandler;
|
||||||
|
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 WebsocketConfig implements WebSocketConfigurer {
|
||||||
|
private static final String CHANNEL_BASE_PATH = "/ws/";
|
||||||
|
@Autowired
|
||||||
|
private final SessionsService sessionsService;
|
||||||
|
@Override
|
||||||
|
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
|
||||||
|
registerJsonChannel(registry, new ConnectionWebsocketHandler(this.sessionsService));
|
||||||
|
registerJsonChannel(registry, new MatchmakingWebsocketHandler(this.sessionsService));
|
||||||
|
registerJsonChannel(registry, new TimeWebsocketHandler(this.sessionsService));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registerJsonChannel(WebSocketHandlerRegistry registry, JsonWebsocketHandler handler){
|
||||||
|
registry.addHandler(
|
||||||
|
handler,
|
||||||
|
CHANNEL_BASE_PATH + handler.channel.getJsonName()
|
||||||
|
).setAllowedOrigins("*");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,24 +0,0 @@
|
||||||
package de.towerdefence.server.server.channels.connection;
|
|
||||||
|
|
||||||
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 ConnectionWebsocketConfig implements WebSocketConfigurer {
|
|
||||||
@Autowired
|
|
||||||
private final SessionsService sessionsService;
|
|
||||||
@Override
|
|
||||||
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
|
|
||||||
registry.addHandler(
|
|
||||||
new ConnectionWebsocketHandler(this.sessionsService),
|
|
||||||
"/ws/connection"
|
|
||||||
).setAllowedOrigins("*");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
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("*");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
package de.towerdefence.server.server.channels.time;
|
|
||||||
|
|
||||||
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 TimeWebsocketConfig implements WebSocketConfigurer {
|
|
||||||
@Autowired
|
|
||||||
private final SessionsService sessionsService;
|
|
||||||
@Override
|
|
||||||
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
|
|
||||||
registry.addHandler(
|
|
||||||
new TimeWebsocketHandler(this.sessionsService),
|
|
||||||
"/ws/time"
|
|
||||||
).setAllowedOrigins("*");
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue