반응형
# SpringBoout WebSocker Test
1. 웹소켓 테스트 관련 디펜던시 선택
2. 프로젝트 Generate 및 압축 해제
다운받은 프로젝트 압축 파일을 압축 해제 후 인텔리J로 연다.
- 폴더 구조와 코드는 아래와 같다.
폴더 구조
- SocketHandler.java
package com.example.demo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
import java.util.ArrayList;
import java.util.List;
@Component
@Slf4j
public class SocketHandler extends TextWebSocketHandler {
private static List<WebSocketSession> list = new ArrayList<>();
// 텍스트 메시지 메서드
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
String payload = message.getPayload();
log.info("payload: " + payload);
for(WebSocketSession sess: list) {
sess.sendMessage(message);
}
}
// 클라이언트가 접속 요청 시 호출
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
list.add(session);
log.info(session + " 클라이언트 접속 요청");
}
// 클라이언트가 접속 해제 시 호출
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
log.info(session + " 클라이언트 접속 해제");
list.remove(session);
}
}
- WebSocketConfig.java
package com.example.demo;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@RequiredArgsConstructor
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
private final SocketHandler socketHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(socketHandler, "ws/chat").setAllowedOrigins("*");
// 도메인이 다른 서버에서도 접속 가능하도록 CORS : setAllowedOrigins("*") 추가
}
}
- application.properties
server.port = 8082
3. 구글 크롬에서 WebSocket Client Extention으로 테스트 하기
Extention 추가는 아래의 URL에서 진행한다.
Simple WebSocket Client
Construct custom Web Socket requests and handle responses to directly test your Web Socket services.
chrome.google.com
- 테스트 진행
스프링 부트를 실행 시킨다.
- Chrome 브라우저에서 chat 테스트
정상적으로 잘 된다.
- 끝 -
반응형
'⌛ AWS 인프라 구성하기 (MiniProject) > ✅ 테스트 (Test)' 카테고리의 다른 글
A/B 테스트에서 p value와 귀무가설 (0) | 2024.08.22 |
---|---|
pod에 고정ip 부여하고 특정 서버에 접속하기 (1) | 2023.11.28 |
로컬 리눅스 OS 에서 AWS EC2로 SSH 접근하기 (0) | 2023.05.15 |
(EKS) 동일 Namespace내의 pod간 통신 테스트 (0) | 2022.10.14 |