2011-10-29 2 views
2

저는 실시간 기능이있는 iPhone (및 이후 Android) 앱을 개발하고 있습니다. 즉, 한 사용자가 다른 사용자가 볼 수있는 것을 게시 할 때 (앱의 위치에 따라 다름)입니다.iOS 가까운 실시간 데이터를 폴링하는 대신 수행 할 작업은 무엇입니까?

iOS에서 이것을 구현할 때 네트워크 활동이 많은 배터리 전력을 소비한다는 것을 명심해야합니다.

iOS App Programming Guide은 "필요할 때만 외부 네트워크 서버에 연결하고 해당 서버를 폴링하지 않습니다."라고 말합니다.

어째서 앱이 실시간에 가까운 실시간 정보를 가질 수 있습니까?

답변

2

당신은 리스너 같이 푸시 알림 서비스

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW9

에게 응용 프로그램 역할을이 방법을 사용해야하고, 서버에 의해 수신 된 데이터의 사용자 정의 된 페이로드를 가지고 새로운 알림에 반응 할 수 있습니다. 백그라운드에서 실행 중이거나 전혀 실행되지 않는 경우에도 마찬가지입니다.

+0

차갑고, 채팅 앱과 같이 자주 알림이있는 경우에도 푸시 알림 서비스가 적합하다고 생각합니까? 또한 앱이 포 그라운드에서 실행될 때만 알림을 보내도록하는 우아한 방법이 있습니까? –

+0

1. 채팅 응용 프로그램의 경우 연결 상태가 유지되면 tcp 클라이언트를 사용합니다. 2. 앱이 배경에있는 동안 수신 된 푸시 메시지를 무시하도록 선택할 수 있습니다. –

+0

푸시 알림은 신뢰할 수있는 100 % 보장되지 않습니다. 따라서 백업 메커니즘이 필요합니다. – funroll

1

WhatsApp (채팅 응용 프로그램)과 같이 널리 사용되는 응용 프로그램에서 이미 알려진대로 Apple Push Notification Service을 살펴보십시오. 워드 프로세서

:

애플리케이션을위한 새로운 데이터가 수신되면, 제공자가 준비하고 대상 장치에 통지 푸시 APN에 대한 채널을 통해 통지를 보낸다.

+0

WhatsApp은 앱이 실제로 열려 있더라도 사람들이 보내는 모든 메시지에 Apple Push Notification Service를 사용합니까? –

+0

나는 앱이 이미 열려있을 때 그들이 어떤 방향으로 가고 있는지 정확히 알지 못한다. 이를 위해 stomp가 대안이 될 수 있습니다. http://code.google.com/p/stompframework/ – tilo

+0

앱이 열리면 콜백으로 앱에 알림이 전달되지만 표시되지는 않습니다. 사용자에게 예, 앱이 열려있을 때도 같은 메커니즘을 사용하고있을 가능성이 높습니다. – funroll

3

전경 앱의 경우 읽기 소켓을 열고 사용 가능한 데이터에 대한 비동기 대리인 콜백을 설정합니다. 새 게시물을 보낼 준비가되어 있지 않으면이 소켓에 데이터를 보내지 마십시오.

+0

소켓이 배터리를 과도하게 소모하지 않습니까? –

+0

배터리 전원? 신속하게 또는 전혀 의사 소통을 할 수없는 것 이상. 존재하지 않는 메시지에 대한 쓸모없는 폴링보다 적습니다. – hotpaw2

관련 문제