롱 폴링이란 무엇입니까?
기존 폴링 기술의 변형이며 서버에서 클라이언트로 푸시되는 정보를 에뮬레이션 할 수 있습니다. 긴 폴링을 사용하면 클라이언트는 일반 폴링과 유사한 방식으로 서버에서 정보를 요청합니다.
- 서버에 클라이언트에 사용할 수있는 정보가없는 경우 빈 응답을 보내는 대신 서버는 요청을 보류하고 일부 정보를 사용할 수있을 때까지 기다립니다.
정보를 사용할 수있게되면 (또는 적절한 시간 초과 후) 완전한 응답이 클라이언트로 전송됩니다. 그런 다음 클라이언트는 일반적으로 서버로부터 정보를 즉시 다시 요청하므로 서버는 거의 항상 이벤트에 대한 응답으로 데이터를 전달하는 데 사용할 수있는 사용 가능한 대기 요청을 갖게됩니다.
웹 / AJAX 컨텍스트에서 긴 폴링은 Comet 프로그래밍 이라고도 합니다.
Websocket은 어떻습니까?
WebSocket은 클라이언트와 서버간에 영구적 인 연결을 제공하여 양 당사자가 언제든지 데이터 전송을 시작할 수 있습니다.
- 클라이언트는 WebSocket 핸드 셰이크라는 프로세스를 통해 WebSocket 연결을 설정합니다. 이 프로세스는 클라이언트가 서버에 일반 HTTP 요청을 보내는 것으로 시작됩니다.
- 클라이언트가 WebSocket 연결을 설정하고자 함을 서버에 알리는 Upgrade 헤더가이 요청에 포함됩니다.
결론 :
실시간 통신이 필요한 경우 웹 소켓을 선택할 수 있습니다.
그러나 긴 폴링에서는 :
웹 클라이언트와 웹 서버 사이에 연결이 열려 있으므로 서버에 새 정보가있을 때이를 클라이언트로 푸시 할 수 있습니다. 그러면 해당 요청이 완료됩니다. 그런 다음 클라이언트와 서버간에 새 요청이 작성되고 서버에서 다른 업데이트를 기다립니다. 동일한 TCP 연결은 일반적으로 HTTP / 1.1 연결 유지로 인해 여러 요청에서 지속적으로 열립니다.
참조 및 기타 고려 사항 :
PubNub 긴 폴링 대 소켓-모바일 배터리 수명
Long-Polling, Websockets, SSE (Server-Sent Events) 및 Comet은 무엇입니까?
Objective-C에서 긴 폴링
Websocket 소개
Websocket 대 긴 폴링
앱에서 웹 소켓 사용
Websocket 애플리케이션
PushTechnology- 긴 폴링