import org.springframework.web.socket.*;
import org.springframework.web.socket.handler.TextWebSocketHandler;
public class CustomWebSocketHandler extends TextWebSocketHandler {
// WebSocket 연결이 성립되었을 때 호출되는 메서드
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
// 새로운 WebSocket 연결이 성립되었을 때 실행되는 로직을 여기에 작성
System.out.println("웹소켓 연결됨: " + session.getId());
}
// 클라이언트로부터 텍스트 메시지를 받았을 때 호출되는 메서드
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
// 클라이언트가 전송한 메시지를 처리하는 로직을 여기에 작성
String payload = message.getPayload();
System.out.println("메시지 수신: " + payload);
// 받은 메시지를 다시 해당 클라이언트에게 전송 (Echo 기능)
session.sendMessage(new TextMessage("Echo: " + payload));
}
// 웹소켓 연결이 예외로 인해 끊어졌을 때 호출되는 메서드
@Override
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
// 예외 발생 시 처리할 로직을 여기에 작성
System.out.println("전송 오류 발생: " + exception.getMessage());
session.close(CloseStatus.SERVER_ERROR); // 서버 측에서 연결 종료
}
// WebSocket 연결이 종료되었을 때 호출되는 메서드
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
// 연결이 정상적으로 또는 예기치 않게 종료되었을 때 실행되는 로직을 여기에 작성
System.out.println("웹소켓 연결 종료됨: " + session.getId() + " 상태: " + status);
}
// WebSocket 핸들러가 바이너리 메시지나 텍스트 메시지를 처리할 수 있는지 여부를 반환
@Override
public boolean supportsPartialMessages() {
// 부분 메시지를 지원하는지 여부를 반환 (기본적으로 false로 설정)
return false;
}
}
'API' 카테고리의 다른 글
#1 TEST CODE 작성 : Todo API 만들기 (1) | 2024.12.14 |
---|---|
[spring webSocket - 스프링 웹소켓] : 간이 채팅방 구현 (4) | 2024.09.16 |
메일 API : 이메일 보내기 API - (구글, 스프링부트) (0) | 2024.05.29 |
Security/OAuth2(구글로그인)/JWT(access, refresh) 발행 및 저장 -개인 복습(API) 1부 (0) | 2024.05.01 |
[API] 다중 파일 업로드 & 다운로드 (Ver. Part) (0) | 2024.03.24 |