I have created a WebSocket server that is located on: /server.
I have also created a controller that has a route that maps messages from /stompserver/sendmessage/{to}
to the channel /subscriber/{to}
I can see that the WebSocket server is up, and I'm able to subscribe to any channel I want, but it seems to be that the route /stompserver/sendmessage/{to} is not getting invoked.
This code was working for me before and I don't remember what I've changed.
This is my code:
@Controller
@Slf4j
public class ArduinoControllerV1 {
Logger logger = LoggerFactory.getLogger(ArduinoControllerV1.class);
@Autowired
private SimpMessagingTemplate messagingTemplate;
@MessageMapping("/sendmessage/{to}")
@RequestMapping("/sendmessage/{to}")
public void sendMessage(@DestinationVariable String to, String message) {
logger.info(message.toString() + " to " + to);
messagingTemplate.convertAndSend("/subscriber/" + to, message);
}
}
Configuration:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/stompserver");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/server").setAllowedOriginPatterns("*").withSockJS();
}
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
}
}
I'm using WebSocket Debug tool as a client, to send and receive messages.
Thanks for your help in advance.