HTTP는 클라이언트의 request에 서버가 response하는 형태
네트워크 흐름이 고정되어 있다.
하나의 요청에 하나의 응답만 가능하다.
클라이언트의 요청이 있어야 서버가 응답이 가능하다.
클라이언트의 요청이 없다면 서버 입장에서 클라이언트가 뭘 하는지 알 수 없다.
해당 페이지와 연결된 서버가 있다 해도 유저가 나갔다면 서버는 알 수 있을까?
-> 브라우저 닫기 버튼을 눌러서 나간 경우 unload 이벤트로 추적
-> 뒤로 가기 버튼을 눌러서 나간 경우 componentWillUnmount 이벤트로 추적
정전이 나면? 물을 끼얹으면? 브라우저가 멈춰서 강제 종료한 경우에는?
-> 주기적으로 api 콜을 보내 해당 페이지에 있다고 알려줘야할까?
해당 페이지에서 유저가 요청을 보내지 않는 행위만 하고 있다면 유저가 해당 페이지에 있다는 사실을 서버는 알 수 있을까?
-> 해당 페이지를 보고있는 모든 유저에게 push를 하고 싶은데, 어떻게 해당 페이지를 보고 있는 유저를 추적할 수 있을까?
클라이언트와 서버 사이의 연결 상태를 Web Socket을 사용하면 쉽게 알 수 있다.
개발자 도구의 네트워크 창에서 네트워크를 offline으로 설정 했다가 다시 연결하기 통신이 연결됨.
연결 상태까지 알 수 있는 Web Socket을 모든 통신에 사용하면 안 될까?
우리는 어떤 통신을 선택할 것인가?