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
|
||||
public abstract class JsonWebsocketHandler extends TextWebSocketHandler {
|
||||
private static final Logger logger = LoggerFactory.getLogger(JsonWebsocketHandler.class);
|
||||
protected final Channel channel;
|
||||
public final Channel channel;
|
||||
protected final SessionsService sessionsService;
|
||||
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