У меня есть сервер Spring Websocket, очень простой:
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry webSocketHandlerRegistry) {
webSocketHandlerRegistry.addHandler(new WebsocketHandler(), "/socket").setAllowedOrigins("*");
}
@Bean
public ServletServerContainerFactoryBean createWebSocketContainer() {
ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
container.setMaxBinaryMessageBufferSize(1024000);
container.setMaxTextMessageBufferSize(1024000);
return container;
}
}
И
public class WebsocketHandler extends AbstractWebSocketHandler {
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws IOException {
System.out.println(message.getPayload()+"\n");
session.sendMessage(message);
}
@Override
protected void handleBinaryMessage(WebSocketSession session, BinaryMessage message) throws IOException {
System.out.println("New Binary Message Received");
session.sendMessage(message);
}
}
Когда я открываю клиент, который является простым HTML с Sock JS библиотека, клиент может отправлять полученные сообщения с сервера, но если я открою новую вкладку с подобным клиентом, он не сможет получать сообщения, отправленные другим клиентом.
Это из-за session.sendMessage(message);
? Какова должна быть конфигурация, чтобы, когда один клиент отправлял сообщения, все другие клиенты могли получать его?