(메신저 개발) 카카오톡 폴링 방식

폴링: 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화처리의 목적으로 다른 장치의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신등의 자료처리를 하는 방식을 말한다. 이 방식은 버스멀티포인트 형태와 같이 여러 개의 장치가 동일 회선을 사용하는 상황에서 주로 사용된다. 서버의 제어 장치(또는 프로그램)는 순차적으로 각 단말 장치(또는 프로그램)에 회선을 사용하기 원하는지를 물어본다.




- 간단한 구현
- 쓸모없는 요청-응답 때문에 많은 트래픽이 낭비됨
- 반복하는 주기가 짧지 않은 경우, 폴링 기법 추천 
   (ex. 페이스북 웹채팅에서 사용자 리스트 갱신주기 1분 - 폴링기법 사용함)

- 서버에서 커넥션을 물고 기다리고 있으며, 이벤트의 업데이트가 있을 경우 클라이언트로 응답을 보내준다.
- 구현기술
   - iframe : 구현이 쉬우나 로딩이 표시되고 크로스 도메인을 지원하지 않음
   - htmlFile : IE 에서만 동작함
   - JSONP : 대중적인 사용방식, 크로스도메인 문제 해결
   - XmlHttpRequest : 크로스 도메인을 지원하지 않음

카톡은 푸시서버 대신 폴링을 이용한다고 알려져 있습니다.
그리고, 얼마 전 기사에 나오길 msg 수신확인 전까지 msg를 저장한다고 했습니다.
그래서 이래저래 알아보니 (뭐 모바일 메신저가 다 그렇겠지만) 채팅방 시스템이더군요.

<카카오톡 동작 원리 (예상도)>


참고: http://wink.egloos.com/v/4582028

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기