티스토리 뷰

카테고리 없음

[웹서버] socket.io

하악생 2021. 1. 4. 16:47

http 프로토콜 통신 방식은 단방향 요청 - 응답으로 동작한다. 

클라이언트에서 요청을 보내야 응답하는 것으로 실시간 데이터 반영 하는데에는 적합하지 않은 구조이다.

실시간 반영 문제를 해결하기 위한 몇 가지 해결 방법이 있다. polling, long polling, streamming, websocket 등 방식이다. 

 

Polling 방식: Client가 일정 간격으로 요청을 보내는 방식 예) 3초에 한번씩 서버에 데이터 요청

                    업데이트가 없는 경우에도 불필요한 요청이 생기기 때문에 효율적이지 못함. 

                    

Long Polling 방식: Client가 요청(응답대기)을 걸어놓고 Server에서 데이터 변경이 있을 때만 응답해주는 방식

                             응답이 오면 Client는 다시 (요청)응답대기를 걸어놓는다.

                             요청(응답대기)와 응답이 매우 빈번하게 발생하는 경우 잦은 연결에 부하가 생길 수 있음.

 

Strimming 방식: Client와의 연결을 유지한 상태로 이벤트가 발생할 때마다 서버에서 응답하는 방식

                          유지되는 연결이 많아지면 부하가 일어날 수 있음.

                          

Websocket 방식: 연결이 유지된 상태에서 양방향(Client <-> Server)으로 메세지 전송이 가능한 방식 

                           (이것도 유지되는 연결 수가 많아지면 부하가 많이 생기지 않을까?)

 

-----------------------------------------------------------------------------------------------

 

Socket.io: 위에 언급한 많은 방식 중 환경에 맞게 적절히 선택되어 동작하도록 설계된 자바스크립트  기반 라이브러리 

 

 

 

 

 

 

 

 

참조  URL

woowabros.github.io/woowabros/2017/09/12/realtime-service.html

 

실시간 서비스 경험기(배달운영시스템) - 우아한형제들 기술 블로그

경험기

woowabros.github.io

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함