[Node.js] Websocket

Asher Park·2023년 1월 10일
0

내일배움캠프_Node.js

목록 보기
17/17
post-thumbnail

스파르타코딩클럽 내일배움캠프 Websocket 강의를 들으며 공부한 것을 적은 것입니다.

Polling

  • HTTP 연결에서는 서버가 클라이언트에게 발송한 데이터가 생기더라도 서버가 일방적으로 클라이언트에게 응답을 보낼 수 없다
  • 클라이언트가 요청을 보낼 때까지 기다려야 한다
  • 요청을 주기적으로 보내면서 서버가 보내고자 하는 내용이 있는지 확인하여 가져오는 방식이 Polling
  • 오버헤드가 상당히 증가한다는 단점

Long Polling

  • Polling 의 생명주기의 시간을 늘린다
  • 이벤트가 발생할 때 까지 대기

Server Sent Event(SSE)

  • 서버에서 클라이언트로 단방향 데이터를 전달할 수 있는 HTML5 기술
  • 서버에서 일방적인 데이터 전달이 필요한 곳에 적합
  • 스트리밍 서비스

WebRTC

  • P2P 통신
  • UDP로 통신하기 때문에 빠르다
  • 사용자가 많아질 수록 성능이 떨어진다

WebSocket

  • TCP에서 동작
  • HandShake 요청을 통해 HTTP -> Socket 통신으로 전환하는 과정을 거친다
  • 양방향 통신

WebSocket HandShake

let socket = new WebSocket(url);

Events

  1. open - 연결이 이루어졌을 때
  2. message - 데이터를 수신하였을 때
  3. close - 커넥션이 종료되었을 때
  4. error - 에러가 생겼을 때
socket.onopen = function (e) {};
socket.onmessage = function (e) {};
socket.onclose = function (e) {};
socket.onerror = function (e) {};

데이터 전송

  • 문자열이나 이진 데이터만 들어갈 수 있다.
socket.send(body);

연결 끊기

  • code - 연결 끊을 때 사용하는 특수 코드
  • reason - 연결 끊는 사유
socket.close([code], [reason]);
profile
배움에는 끝이없다

0개의 댓글