1. 웹소켓 기술  

  • 전이중 통신 - 실시간성 보장하는 서비스 (채팅, 게임, 주식거래 사이트 등)에 주로 사용
  • HTTP에도 실시간성 보장하는 기법이 존재하지만, 서버에 부하가 많이 가기 때문에 웹소켓을 이용한다.
  • HTTP는 비연결성 프로토콜, 단방향성 통신이다. 따라서 매번 연결 맺고 끊는 과정의 비용이 든다.
  • 반면, 웹소켓은 연결지향이라 한번 연결 맺은 뒤 유지, 양방향 통신이다.
  • 보내야하는 메시지와 데이터 양에서도 차이가 난다. 웹소켓을 사용하면 HTTP와 비교했을 때 한번 통신한 후엔 훨씬 적은 양의 데이터로 통신해서 부담을 덜 수 있다. 

 

2. 웹소켓의 단점 : 모든 브라우저에서 허용되는 것은 아니다.

→ 이 문제를 SockJs 와 Socket.io 를 사용하여 해결 할 수 있다. (스프링은 SoketJs사용)

 

※ 스프링에서 웹소켓 설정은 아주 간단한다. 

  • 웹소켓 Config 파일 - addHandler 핸드쉐이크할 주소를 적어줌
  • 핸들러 부분 - 웹소켓 세션을 오버라이드해서 받아오는데, 웹소켓 연결정보를 담고 있는 세션이다.
  • Cors설정
  • .withSockJS() 를 통해 라이브러리 사용 가능.

 

3. Stomp 프로토콜

  • 메시지 브로커를 활용하여 쉽게 메시지를 주고 받을 수 있는 프로토콜
  • 웹소켓 위에 얹어 함께 사용할 수 있는 하위 프로토콜 
  • 메시지 브로커랑 발신자의 메시지를 받아와 수신자들에게 메시지를 전달하는 어떤 것 !

그렇다면 왜 이게 필요한가 ?

프레임 단위 ( 커맨드, 헤더, 바디 ) 의 형태로 메시지 형태를 정해줌. - 컨벤션을 따로 정의할 필요 없다.

 

 

https://www.youtube.com/watch?v=rvss-_t6gzg 

 

+ Recent posts