2015-10-15 69 views
0

我正在開發一個iOS應用程序,我正在尋找一種方式,我的應用程序能夠知道服務器上的數據是否發生了變化。客戶端(iOS設備)如何知道服務器的任何更改?

一些方法來在我的腦海:

1)發送到每3秒對服務器的請求。但是,採用這種方法,恐怕服務器數量增加時會超載。另一方面,我的iOS應用程序的性能將受到影響。

2)使用iOS推送通知(apns)。但是,採用這種方法,我的應用程序只能在睡眠或不活動時從服務器接收數據。

你能否告訴我任何其他方法或給我任何建議。謝謝。

注意:我正在使用Objective-C,Xcode 7.1。

+0

推送通知是要走的路,我不知道爲什麼你會認爲這隻會發生在你的設備正在睡覺,但... – Fonix

+0

是去推送通知的方式。 – Bhupesh

+0

哦,我會仔細檢查它是否推送通知可以解決問題。 – chipbk10

回答

4

使用ios推送通知(apns)。但是,採用這種方法,我的應用程序只能在睡眠或不活動時從服務器接收數據。

這是不是是真的!

即使應用程序處於活動狀態,您的應用程序也會收到推送通知。在這種情況下,它只會顯示一個alertView(如果已實施),但Notifications Bar UI上不會顯示。

然後,您可以實現你的邏輯在的AppDelegate這個回調中:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { 
    //Make a Differential Call to the server. 
} 
1

您可以使用Web接口,用於實時雙向連接。爲此,Square有一個名爲SocketRocket的圖書館。

+0

套接字也適用於這種情況。謝謝。 – chipbk10

+0

如果您認爲是,請標記爲正確答案。 – quaertym

+0

對不起,我去推送通知。 – chipbk10

0

APNS是實現您想要的正確方法。

相關問題