2011-07-06 3 views
2

일부 응용 프로그램은 서버를 주기적으로 확인해야하지만 서버를 업데이트해야 할 때 서버가 모바일 장치에 알려주지 않는 이유는 알고 있습니다.모바일 장치가 주기적으로 서버에서 업데이트를 확인해야하는 이유는 무엇입니까?

예를 들어 Gmail에서 전자 메일을받는 경우를 가정 해 봅시다. 지금은 이메일을받는 것과 기기를 알려주는 기기 사이에 지연이있을 수 있습니다. 장치가 Gmail 서버를 검사 할 때까지 기다리는 것과 관련이 있다고 가정합니다.이 시점에서 새 전자 메일을보고 사용자에게 알립니다. Gmail 서버가 전자 메일을 받으면 등록 된 모든 장치에 ping (또는 작성자가이를 구현하려고 함)해야 업데이트시기를 알 수 있습니다. 이렇게하면 알림 메시지가 동기화되고 모바일 장치가 주기적으로 서버를 확인하지 않아도 배터리를 절약 할 수 있습니다.

+0

타사 API에서 데이터를 가져 오는 응용 프로그램을 작성한다고 가정합니다. 이 경우 push를 구현하는 것이 훨씬 더 어렵습니다. 앱 사용자는 서버에 등록해야하며 서버는 데이터가 변경 될 때 사용자에게 알릴 수 있도록 어떤 데이터가 어떤 사용자에게 전송되었는지 추적해야합니다. 또는 앱에서 정기적 인 업데이트를 작성할 수 있으며 자신의 서버가 없을 수도 있습니다. –

답변

2

설명하는 것을 "서버 푸시"라고합니다. 일부 모바일 애플리케이션은 서버 푸시를 사용합니다. 그리고 구글은 실제로 클라우드에서 디바이스 메시징 (C2DM)으로 명명 된 기술을 구현하기 쉽게 구현했다. 이 기능은 서버가 Google의 C2DM 서버를 통해 기기에서 실행중인 애플리케이션으로 작은 메시지를 전송하고 업데이트 시간을 알려줌으로써 작동합니다. 그리고 장치는 원래 서버 (C2DM이 아닌)에서 실제 업데이트를 검색합니다.

좋은 물건. 그것은 C2DM 관리를 청취하는 서비스가 전화 및 모든 것을 깨우는 것을 허용합니다. 단점은 응용 프로그램의 사용자가 Google 계정이 필요하다는 것입니다. 안드로이드 사용자의 경우, 이것은 정말로 단점이 아닙니다.

0

경우에 따라 예외가 있습니다. 내 iPod의 설정에있는 "Mail, Contacts, Calendars"섹션에는 "Fetch New Data"라는 하위 메뉴가 있는데, 여기에는 메일 서버 나 데이터를 iPod에 "푸시"할 수있는 옵션이 있습니다. 일정을 설정할 수있는 가져 오기 기능은 푸시가 꺼져 있거나 푸시를 지원하지 않는 응용 프로그램과 동기화 할 때 사용됩니다.

0

안드로이드는 그렇게합니다. 그것은 장치에 알림을 보내고 api는 타사 개발자에게도 개방되어 있으므로 사용자에게 알림을 보낼 수 있습니다.

0

특정 시점에 모바일 장치의 주소를 알기가 어렵습니다. IP 주소가 동적입니다. 서버에서 주소가 훨씬 안정적이어서 장치는 항상 Google에서 Google을 찾습니다. .com 그러나 Google는 장치를 어디에서 찾아야 하는지를 알 수있는 실제 방법이 없으며, 처음에 핑 (ping) 할 위치를 알 수 없습니다.

여기는 밀어 넣기가 시작되는 곳입니다. 다른 구현이 있지만 장치가 서버에 대한 연결을 유지하고 잃어 버리면 다시 설정하는 것으로 작동한다고 생각합니다. 참조하십시오. http://en.wikipedia.org/wiki/Push_technology

이것은 간단한 클라이언트를 구현하고 유지하는 것이 훨씬 어렵습니다.

관련 문제