Node

[Node] 웹소켓 정리

꾸준2 2023. 4. 7. 10:12

웹 소켓 WS(Web Socket)
 - 서버와 클라이언트가 서로 socket connection을 유지해서 언제나 실시간 양방향 데이터 전송이 가능하게 해주는 기술
 - 노드에서는 ws, socket.io같은 패키지를 통해서 구현 가능
 
WebSocket vs Socekt.io
- WebSocket은 자바스크립트 Socekt.io은 jquery와 같은 관계라고 예를 들수 있음

WebSocket
 - 양방향 소통을 위한 프로토콜
 - HTML5 웹 표준 기술(웹소켓은 HTML5 모듈이므로 클라이언트 쪽에서는 모듈 설치 필요 없음)
 - 매우 빠르게 동작하고 작은 데이터를 이용해 통신함
 - 이벤트를 듣고 보내는 것만 가능
 
Socket.io
  - 웹소켓 기술을 활용하는 라이브러리
  - 웹소켓을 지원하지 않는 브라우저에도 사용가능하게 해준다.
  - 표준 기술이 아닌 라이브러리임
  - 소켓 연결 실패시 fallback을 통해 다른 방식으로 알아서 해당 클라이언트에 연결을 시도함
  - 특정 클라이언트에게만 데이터를 전송하는 브로드 캐스팅 가능(브로드 캐스팅이 가능하기 때문에 특정 사용자를 세밀하게 관리할때 유용함)
  

Socket.io 이벤트 통신
  - 클라이언트에서 발생하는 이벤트를 개발자가 임의로 설정 가능

// 해당 이벤트를 받고 콜백함수를 실행
socket.on('받을 이벤트 명', (msg) => {
})
 
// 이벤트 명을 지정하고 메세지를 보낸다.
socket.emit('전송할 이벤트 명', msg)