与Websocket的java连接
我尝试用SockJS从angular连接到spring boot: 连接到服务器的socket后出现错误:
Spring启动配置:
@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;
}
角度连接:
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); });
});
如果我在前面使用WebSocket,我会得到不正确的工作,只有第一个连接工作
共 (0) 个答案