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
|
||||
|
||||
server:
|
||||
host: localhost
|
||||
port: 8080
|
||||
stomp:
|
||||
endpoint: stomp
|
||||
# Development
|
||||
#web.socket.url: ws://localhost:8080/stomp
|
||||
|
||||
# Production
|
||||
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.standard.StandardWebSocketClient;
|
||||
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
|
||||
public class MultiplayerConfig {
|
||||
|
||||
@Bean
|
||||
public WebSocketStompClient stompClient(MessageConverter messageConverter) {
|
||||
public WebSocketClient webSocketClient() {
|
||||
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);
|
||||
stompClient.setMessageConverter(messageConverter);
|
||||
stompClient.setTaskScheduler(new ThreadPoolTaskScheduler());
|
||||
|
@ -25,14 +25,8 @@ public class StompTemplate {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(StompTemplate.class);
|
||||
|
||||
@Value("${server.host}")
|
||||
private String host;
|
||||
|
||||
@Value("${server.port}")
|
||||
private int port;
|
||||
|
||||
@Value("${server.stomp.endpoint}")
|
||||
private String stompEndpoint;
|
||||
@Value("${web.socket.url}")
|
||||
private String webSocketUrl;
|
||||
|
||||
@Autowired
|
||||
private ExecutorService executorService;
|
||||
@ -54,8 +48,7 @@ public class StompTemplate {
|
||||
|
||||
@PostConstruct
|
||||
private void postConstruct() {
|
||||
final String url = String.format("ws://%s:%d/%s", host, port, stompEndpoint);
|
||||
executorService.execute(() -> stompClient.connect(url, new WebSocketSessionHandler()));
|
||||
executorService.execute(() -> stompClient.connect(webSocketUrl, new WebSocketSessionHandler()));
|
||||
new Thread(new WebSocketSessionListener()).start();
|
||||
}
|
||||
|
||||
|
@ -18,10 +18,7 @@ public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
|
||||
|
||||
@Override
|
||||
public void registerStompEndpoints(StompEndpointRegistry registry) {
|
||||
// For JavaFX client
|
||||
registry.addEndpoint("/stomp");
|
||||
// For JavaScript client
|
||||
registry.addEndpoint("/sockjs").withSockJS();
|
||||
registry.addEndpoint("/stomp").withSockJS();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -31,10 +31,9 @@ function main() {
|
||||
reset();
|
||||
repaint();
|
||||
|
||||
client = Stomp.over(new SockJS('/sockjs'));
|
||||
client = Stomp.over(new SockJS('/stomp'));
|
||||
|
||||
client.connect({}, function(frame) {
|
||||
console.log('Connected: ' + frame);
|
||||
subscribeToOpponentJoined();
|
||||
subscribeToOpponentLeft();
|
||||
subscribeToOpponentReports();
|
||||
|
Loading…
x
Reference in New Issue
Block a user