Maven dependences
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>sockjs-client</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>stomp-websocket</artifactId>
<version>2.3.3-1</version>
</dependency>
HTML
<script src="/webjars/sockjs-client/1.1.2/sockjs.min.js"></script>
<script src="/webjars/stomp-websocket/2.3.3-1/stomp.min.js"></script>
Java config
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/events”); // sending address to client
config.setApplicationDestinationPrefixes("/ws-app”); //listen client message
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/websocket").withSockJS();
}
}
JS
setConnected(connected) {
this.connected = connected;
console.log('connected: ', connected);
},
connect() {
const socket = new SockJS('/websocket');
this.stompClient = Stomp.over(socket);
this.stompClient.connect({}, frame => {
this.setConnected(true);
this.stompClient.subscribe('/events/gate', res => {
const data = JSON.parse(res.body);
...
});
});
},
disconnect() {
if (this.stompClient !== null) {
this.stompClient.disconnect();
}
this.setConnected(false);
}
Broadcast
@Autowired
private SimpMessageSendingOperations messagingTemplate;
public void broadcastEvent(String path, Object message) {
messagingTemplate.convertAndSend("/events/" + path, message);
}
'개발자의 정보 > Java & framework' 카테고리의 다른 글
Spring framework Page<T> 와 DataTables.js 연동 (0) | 2020.02.01 |
---|---|
Spring @Controller 에서 파라미터로 배열 받기 (2) | 2020.02.01 |
[spring-boot-data-rest] How to expose IDs for all (0) | 2020.02.01 |
[spring-boot-starter-data-jpa] with java1.6 (0) | 2020.02.01 |
FrontEnd 분리된 SpringMVC 구성시 Controller 구성 (0) | 2020.02.01 |
[JSTL]According to TLD or attribute directive in tag file (0) | 2020.02.01 |
DB 관련 프레임워크를 사용하지 않는 환경에서 DB 개발을 해야 한다. (0) | 2020.02.01 |
java.util.List to Json: 맵 리스트를 제이손 데이터로 jsp (0) | 2020.02.01 |
댓글