스프링 부트 응용 프로그램이 있는데, npm과 webpack을 사용합니다. 나는 서버에서 클라이언트로 메시지를 보내기 위해 websocket을 시작하고 싶다. 내 서버는 자바와 stomp와 sockjs를 사용하는 자바 스크립트 클라이언트로 만들어졌습니다. 클라이언트 :Stomp SockJs 클라이언트 + 서버 스프링
socket = new SockJS('/myWebSocketEndPoint');
stompClient = Stomp.over(socket);
stompClient.connect("","", function (frame) {
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/notification', function (notificationBody) {
alert(angular.fromJson(notificationBody.body).content);
});
});
}
서버 : 구성 : 여기 내 코드의
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/myWebSocketEndPoint").withSockJS();
}
}
컨트롤러 :
@SendTo("/topic/notification")
public String sendToMenuItems(String menuItem) {
return menuItem;
}
문제는 : 난 내 응용 프로그램을, 그것을하지 실행하고자 할 때 websocket (서버가 작동하지 않거나 클라이언트가 서버를 찾지 못하는 것 같습니다)로 업그레이드합니다. 따라서 업그레이드 요청은 보류 중입니다. 내가 사용하는 경우 :
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/sockjs-client").withSockJS();
}
및
socket = new SockJS('/sockjs-client');
업그레이드가 작동하지만,하지 연결하고 가입. 왜 두 번째 구성을 사용하면 (부분적으로) 응용 프로그램이 작동하고 첫 번째 구성을 사용하면 안됩니까? 덕분에 많은