웹소켓이 나오기 전에는 클라이언트가 요청해야 서버로부터 응답을 받을 수 있었다. 새로고침을 해야 그 페이지의 새로운 데이터를 불러올 수 있는 것을 예로 들 수 있다.
이러한 단점을 해결하기 위해 웹소켓이 나왔다.
웹소켓에서는 서버와 브라우저 사이에 양방향 소통이 가능하다.
브라우저는 서버가 직접 보내는 데이터를 받아들일 수 있고, 사용자가 다른 웹사이트로 이동하지 않아도 최신 데이터가 적용된 웹을 볼 수 있게 해준다.
웹소켓 api 는 매우 기본적인 기능만 제공하기 때문에 보통 SockJS, Socket.IO 등의 오픈 소스 라이브러리를 사용한다.
WebRTC(Web Real-Time Communication)은 브라우저끼리 통신하여 중간자인 서버없이 브라우저 간에 오디오, 영상 미디어, 데이터등을 교환할 수 있도록 하는 기술이다.(P2P 형태)
WebRTC는 영상, 오디오, 데이터 통신이 고성능, 고품질이도록 설계되었다.
브라우저간 통신으로, 웹소켓보다 훨씬 전송 속도가 빠르다.
네트워크 지연시간이 짧다.
Zoom, Google Meet, Gather.town등의 화상회의 기능에서 주로 WebRTC를 이용한다.
레퍼런스
웹 RTC
https://developer.mozilla.org/ko/docs/Web/API/WebRTC_API
웹소켓
https://choseongho93.tistory.com/266
비교
https://velog.io/@sinclebear/WebSocket-%EA%B3%BC-WebRTC%EC%9D%98-%EB%B9%84%EA%B5%90