I try to connect to web socket from angular to spring boot with SockJS:
I have errors after connection to the server's sockets :
Spring Boot configuration:
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker( "/");
config.setUserDestinationPrefix("/user");
// config.setApplicationDestinationPrefixes("/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws")
.setAllowedOrigins("http://localhost:4200")
.setHandshakeHandler(new UserHandshakeHandler())
.withSockJS();
}
@Override
public boolean configureMessageConverters(List<MessageConverter> messageConverters) {
DefaultContentTypeResolver resolver = new DefaultContentTypeResolver();
resolver.setDefaultMimeType(MimeTypeUtils.APPLICATION_JSON);
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setObjectMapper(new ObjectMapper());
converter.setContentTypeResolver(resolver);
messageConverters.add(converter);
return false;
}
Angular connection:
this.socket = new SockJS(environment.serverUrl + socketPrefix + '?token=' + this.authService.getAccessToken());
this.stompClient = Stomp.over(this.socket);
this.stompClient.connect({}, () => {
this.stompClient.subscribe(hubMethodSubscription.noteTextUpdate,
(data: any) => { console.error(data); this.observableUpdateNoteText.next(JSON.parse(data.body)); });
this.stompClient.subscribe(hubMethodSubscription.deleteNoteFromOwner,
(data: any) => { console.error(data); this.observableDeleteNoteFromOwner.next(JSON.parse(data.body)); });
this.stompClient.subscribe(hubMethodSubscription.sendNewNotificationKek,
(data: any) => { console.error(data); });
});
If I use WebSocket in front, I get incorrect working, where only first connection worked