I have a Spring Websocket server, very simple one:
@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;
}
}
And
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);
}
}
When I open the client which is just a simple HTML with SockJS library, the client can send receive messages from the server but if I open a new tab with the similar client it is not able to receive the messages posted by the other client.
Is this because of session.sendMessage(message);? What should be the configuration that when one client posts messages all other clients would be able to receive it?