트릭: 응답을 잡고 있어
Long polling 은 request 모양은 그대로 두고 타이밍을 뒤집어. 서버가 'no news' 라고 즉시 답하지 않고, 할 말이 생기거나 자기 timeout 이 끝날 때까지 connection 잡고 있어. 클라는 즉시 push 받은 것처럼 보이고, 다음 request 를 즉시 보내서 채널 살려놔.
2010년대를 이긴 이유
Long polling 은 HTTP 외엔 다 싫어하는 corporate firewall 과 proxy 를 뚫고 다녔어. Gmail 이 몇 년 썼어. Facebook chat 도 썼어. WebSocket 막혔을 때 Socket.IO 가 떨어지는 안전망이 여전히 long polling 이야.
여전히 hack 인 이유
응답마다 connection 닫혀. TCP handshake 다시 내야 해. proxy 가 1-2분 idle 후 죽이니까 서버 timeout 을 proxy threshold 아래로 맞춰야 해. 대기 중인 request 마다 서버 worker 잡아먹어. 그리고 일방향이야: 서버는 push 잘 하지만, 클라가 보내려면 별도 request 또 쓰는 거.