최종목표는 Spring boot와 Kafka / websocket / elasticsearch / auth 서버를 micro로 셋팅하는 법을 공유하는 것입니다. 해당내용은 websocket에 해당되는 부분으로 다른것과 연동하고 싶으시면 다른 글을 참조하셔서 합치면되겠습니다. java + js 부분으로 이어집니다.
* Websocket : 2019/01/10 - [개발자를 벗어나긴 이미 늦었다./Spring boot] - Spring boot + WebSocket
* Reference 예제 : https://spring.io/guides/gs/messaging-stomp-websocket/
1. Dependency 추가
compile("org.springframework.boot:spring-boot-starter-websocket")
compile("org.webjars:sockjs-client:1.0.2")
compile("org.webjars:stomp-websocket:2.3.3")
Spring boot Starter를 이용하기 위해 spring-boot-starter-websocket 을 추가하고, js에서 사용한 webjar를 추가해줍니다. webjar는 해당 js를 파일을 다운받으셔서 Static(js) 폴더에 넣으셔서 참조해주셔도 상관없습니다.
2. Config 파일생성
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/ws");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/test-websocket").withSockJS();
}
}
- @EnableWebSocketMessageBroker - spring boot websocket broker 활성화
- setApplicationDestinationPrefixes - default context 지정
- enableSimpleBroker - 호출시 broker가 감지할 url 설정
- addEndpoint - websocket connect 시 사용될 path 지정
@Controller
public class GreetingController {
@MessageMapping("/hello")
@SendTo("/ws/hello")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(1000); // simulated delay
return new Greeting("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!");
}
}
=== JAVA 설정 끝
4. js에서 SockJS를 통해 접속
var socket = new SockJS('/test-websocket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
console.log('Connected: ' + frame);
stompClient.subscribe('/ws/hello', function (message) {
console.log(message); //실행부분
});
});
stompClient.send("/app/hello", {}, JSON.stringify({'name': $("#name").val()}));
'개발자를 벗어나긴 글렀다. > Spring boot' 카테고리의 다른 글
springboot 2.1.x에서 2.3.x 버전으로 업그레이드 (0) | 2020.09.10 |
---|---|
Spring Boot + ES 연계방식 탐구 (0) | 2020.09.09 |
Spring boot + Asp 로 request / response logging (0) | 2019.01.14 |
Spring boot + Elastic Search (0) | 2019.01.10 |
Spring boot + Spring kafka(Consumer) (2) | 2019.01.09 |