시작에 앞서 필자는 spring의 WebSocket에 대한 지식이 부족하여 인터넷에 검색한 정보를 통하여
이 글을 작성하게 되었다
https://devel-repository.tistory.com/39
위 사이트 참조
우선 첫번째로 웹소켓을 등록하여 클라이언트들이 /chat 이라는 url로 들어온다면 서로 채팅을 주고받을수있게 설계 해보았다
@EnableWebSocket 어노테이션을 사용해 웹 소켓을 활성화 시켜주고
@RequiredArgsConstructor 어노테이션을 사용해 final 멤버변수 webSocketHandler를 의존성 부여 해주었다
다음은 WebSocketConfigurer interface를 implements 시켜서
registerWebSocketHandlers를 오버라이드 하여 url과 허용도메인을 설정해두었다
두번쨰로는 WebSocketHandler클래스를 만드는것
WebSocketHandler 는 TextWebSocketHandler를 상속해
클라이언트들이 들어오거나 나가고 데이터를 주고받는걸 관리하는 클래스로 설계해주자
우선 클라이언트들의 session을 담아줄 배열이 필요한데
멀티쓰레딩 환경에서 적합한 ConcurrentHashMap을 사용해서 담아주도록 하자
TextWebSocketHandler에는 들어오는 클라이언트들의 session을 받아오는
afterConnectionEstablished 라는 메소드
클라이언트가 웹 소켓 연결 종료시에 session을 받아오는
afterConnectionClosed 라는 메소드
클라이언트가 데이터를 보낼시에 session과 message 를 받아오는
handleTextMessage 메소드가 있다
외에도 오류가 발생되었을때 수행되는 handleTransportError
등이 있지만 우선 이 세가지만 활용하도록 하겠다
'My Project > Final Project' 카테고리의 다른 글
2024-08-30 (매칭 시스템 구현 -3) (0) | 2024.09.02 |
---|---|
2024-08-29 (매칭 시스템 구현 -2) (0) | 2024.09.02 |
2024-08-28 (매칭 시스템 구현) (0) | 2024.09.02 |
2024-08-27 (채팅서버 구현 -3) (0) | 2024.09.02 |
2024-08-26 (채팅서버 구현 - 2) (0) | 2024.09.02 |