Comet
Http 프로토콜의 특성한 지속적인 연결이 불가능 하다. 따라서 client 에서 연결을 하면 응답을 주고 접속이 끊어 진다. 하지만 어떤 경우에는 지속적으로 연결됨이 필요한 경우가 있다.
comet 은 다른 용어로 Reverser Ajax, Ajax Push 라고도 한다. 특정 기술에 대한 이름 이라기 보다는 HTTP 상에서 push 방식을 가리키는 용어다.
Comet의 구현방식
- Polling (Ajax)
- 일정 간격으로 서버에 요청을 보내어 서버의 이벤트를 받는 방식이다. 요청 간격을 줄이면 거의 실시간으로 서버의 이벤트를 받을수 있다. 하지만 서버에의 많은 자원을 소모 하기 때문에 실제로 이렇게 쓰기는 힘들다.
- Long Polling (Comet)
- 클라이언트가 서버에 접속을 하면 서버는 계속 접속을 유지하고 있다가 이벤트가 발생하면 클라이언트로 전송하고 HTTP 트랜잭션을 종료한다. 클라이언트는 메시지를 받으면 다시 서버에 접속을 한다.
- Streaming (Comet)
- 클라이언트와 서버의 접속을 계속 유지한채 서버에서 이벤트가 발생할때 마다 HTTP Chunked 방식으로 데이터를 전송한다. 하지만 몇몇 한계점 때문에 보통은 Long Polling 방식을 활용한다.
See also
Favorite site
- Wikipedia (en) Comet에 대한 설명
- Comet 의 개념
- LONG POLLING/COMET/PUSH SERVER
- [추천] Asynchronous HTTP and Comet architectures
- Play framework에서 Long Polling 구현하기
- HTML5 SERVER-SENT EVENTS 1
- Comet에 대하여
References
-
Html5-server_send_event.pdf ↩