Use SockJs clients
This commit is contained in:
parent
cfea7f287e
commit
3c2e7e6580
@ -1,7 +1,7 @@
|
|||||||
# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
|
# http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
|
||||||
|
|
||||||
server:
|
# Development
|
||||||
host: localhost
|
#web.socket.url: ws://localhost:8080/stomp
|
||||||
port: 8080
|
|
||||||
stomp:
|
# Production
|
||||||
endpoint: stomp
|
web.socket.url: ws://lingo.charego.com/stomp
|
||||||
|
@ -14,13 +14,24 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
|||||||
import org.springframework.web.socket.client.WebSocketClient;
|
import org.springframework.web.socket.client.WebSocketClient;
|
||||||
import org.springframework.web.socket.client.standard.StandardWebSocketClient;
|
import org.springframework.web.socket.client.standard.StandardWebSocketClient;
|
||||||
import org.springframework.web.socket.messaging.WebSocketStompClient;
|
import org.springframework.web.socket.messaging.WebSocketStompClient;
|
||||||
|
import org.springframework.web.socket.sockjs.client.SockJsClient;
|
||||||
|
import org.springframework.web.socket.sockjs.client.Transport;
|
||||||
|
import org.springframework.web.socket.sockjs.client.WebSocketTransport;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class MultiplayerConfig {
|
public class MultiplayerConfig {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public WebSocketStompClient stompClient(MessageConverter messageConverter) {
|
public WebSocketClient webSocketClient() {
|
||||||
WebSocketClient webSocketClient = new StandardWebSocketClient();
|
WebSocketClient webSocketClient = new StandardWebSocketClient();
|
||||||
|
List<Transport> transports = new ArrayList<>();
|
||||||
|
transports.add(new WebSocketTransport(webSocketClient));
|
||||||
|
SockJsClient sockJsClient = new SockJsClient(transports);
|
||||||
|
return sockJsClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public WebSocketStompClient stompClient(WebSocketClient webSocketClient, MessageConverter messageConverter) {
|
||||||
WebSocketStompClient stompClient = new WebSocketStompClient(webSocketClient);
|
WebSocketStompClient stompClient = new WebSocketStompClient(webSocketClient);
|
||||||
stompClient.setMessageConverter(messageConverter);
|
stompClient.setMessageConverter(messageConverter);
|
||||||
stompClient.setTaskScheduler(new ThreadPoolTaskScheduler());
|
stompClient.setTaskScheduler(new ThreadPoolTaskScheduler());
|
||||||
|
@ -25,14 +25,8 @@ public class StompTemplate {
|
|||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(StompTemplate.class);
|
private static final Logger log = LoggerFactory.getLogger(StompTemplate.class);
|
||||||
|
|
||||||
@Value("${server.host}")
|
@Value("${web.socket.url}")
|
||||||
private String host;
|
private String webSocketUrl;
|
||||||
|
|
||||||
@Value("${server.port}")
|
|
||||||
private int port;
|
|
||||||
|
|
||||||
@Value("${server.stomp.endpoint}")
|
|
||||||
private String stompEndpoint;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ExecutorService executorService;
|
private ExecutorService executorService;
|
||||||
@ -54,8 +48,7 @@ public class StompTemplate {
|
|||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
private void postConstruct() {
|
private void postConstruct() {
|
||||||
final String url = String.format("ws://%s:%d/%s", host, port, stompEndpoint);
|
executorService.execute(() -> stompClient.connect(webSocketUrl, new WebSocketSessionHandler()));
|
||||||
executorService.execute(() -> stompClient.connect(url, new WebSocketSessionHandler()));
|
|
||||||
new Thread(new WebSocketSessionListener()).start();
|
new Thread(new WebSocketSessionListener()).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,10 +18,7 @@ public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerStompEndpoints(StompEndpointRegistry registry) {
|
public void registerStompEndpoints(StompEndpointRegistry registry) {
|
||||||
// For JavaFX client
|
registry.addEndpoint("/stomp").withSockJS();
|
||||||
registry.addEndpoint("/stomp");
|
|
||||||
// For JavaScript client
|
|
||||||
registry.addEndpoint("/sockjs").withSockJS();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,10 +31,9 @@ function main() {
|
|||||||
reset();
|
reset();
|
||||||
repaint();
|
repaint();
|
||||||
|
|
||||||
client = Stomp.over(new SockJS('/sockjs'));
|
client = Stomp.over(new SockJS('/stomp'));
|
||||||
|
|
||||||
client.connect({}, function(frame) {
|
client.connect({}, function(frame) {
|
||||||
console.log('Connected: ' + frame);
|
|
||||||
subscribeToOpponentJoined();
|
subscribeToOpponentJoined();
|
||||||
subscribeToOpponentLeft();
|
subscribeToOpponentLeft();
|
||||||
subscribeToOpponentReports();
|
subscribeToOpponentReports();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user