すべてのOSの制限を考慮して、リアルタイムメッセージiOSを配信するためにどのようなテクノロジーが使用されているかを知りたかったのです。それらのいくつかがありますことは、私の心に来るPubNubがiOS(クライアント側)で内部で動作する方法
- 定期的なポーリング
- 永続的な接続プッシュ通知
すべてのOSの制限を考慮して、リアルタイムメッセージiOSを配信するためにどのようなテクノロジーが使用されているかを知りたかったのです。それらのいくつかがありますことは、私の心に来るPubNubがiOS(クライアント側)で内部で動作する方法
4.0以降、PubNub iOS SDKは、実行中のアプリケーションが一時停止されているとサブスクリプションイベントを受信しません。 PubNubのAPNSゲートウェイを介してプッシュイベントを受信するようにプッシュ通知を設定できますが、標準のプッシュ通知のように処理され、PubNubイベントとは異なります。
アプリが実行されているとき、PubNubはwebsocket接続を使用して通知を送受信しているようです。作成したクライアントは、購読しているチャネルでメッセージを受信したときにコールバックを受け取ります。
SDKはオープンソースなので、興味があれば内部的に何が起こっているのかを調べることができます。
がsubscribe
経由でリアルタイムメッセージを受信するために続けることPubNub SDKの関数ではない、あなたはPubNubのiOS 3.xのSDKを使用している場合、それは問題ではない(してください、バックグラウンドで接続泊まりますそうでない、EOLされている)またはPubNub Objective-C for iOS 4.x SDK(これを使用し始めるか、できるだけ早く移行してください)。あなたはバックグラウンドで実行するためにあなたのアプリを設定し、実装する必要があります.Appleはこれを行うためにあなたに許可を与えなければなりません。 see Apple dev docs for iPhone OS Programming Guide - Background Execution (table 3.1)
すべてのオプションを説明するの偉大な仕事をしていませんBackground Modes in iOS上RayWunderlich.comで素晴らしいチュートリアルがあります:
アプリがバックグラウンド活性を正当化するタイプでなければなりません。
ありがとうマシュー!私はソースを入手しましたが、それが何を使用しているのかを知りたかったので、必要に応じて詳細についてはソースを調べます。同じことがアンドロイドでも起こりますか? – hridayesh
アプリが停止中にパブリッシュ/サブスクライブイベントは機能しませんが、アプリがバックグラウンドのときには、バックグラウンドモードがある限り(たとえば、有限の長さのバックグラウンドタスクなど、コード実行を継続できるように3分のバックグラウンド時間) – MikeG