2012-03-23 11 views
1

iOSアプリケーションにアイテムのリアルタイムキューを実装する必要があります。 (後でAndroidも)。iOSクライアントでリアルタイムキューを実装する

主な使用例は、ユーザーがすべてのユーザーによってリアルタイム共有キューを表示することです。多くのキューが存在する可能性がありますが、現在のところ、ユーザーは一度に1つのキューしか見ることができません。 1人のユーザーがキューからアイテムを削除した場合、同じキューを表示しているiOSアプリの他のすべてのユーザーは、キューの更新をリアルタイムで確認する必要があります。サーバーが新しいアイテムが特定のキューに追加されたことを検出した場合、そのキューをリアルタイムで表示している他のすべてのクライアントにプッシュする必要があります。

このようなメカニズムを実装するにはどうすればよいでしょうか?現在のところiOSのみをサポートしていますが、後で他のモバイルプラットフォームを追加することは面倒ではないような簡単な解決策でなければなりません。 Appleのプッシュ通知または他の永続的な接続オプションを使用して - (基本的にのUIWebViewを提示する)ウェブ技術(JS &のHTML5)

  • ネイティブな方法を使用して、それをやって

    1. :私は推測

      は、2つの主要なオプションがあります。 (プッシュ通知は、アプリケーションがバックグラウンドでも、禁止されている神であっても、キューの変更をユーザーに警告できるようにしたい場合にはより良い方法です)

    明らかに私はハイブリッドソリューションも選択できます。

    私は、次のPUB-SUBソリューションに精通している:私は誰もが論文等のいずれかで実験した場合、次のいずれかをお勧めすることができ、およびネイティブまたはウェブあれば言うことを聞いて興味

    1.Xmpp (extension to Xmpp would be more accurate) 
    2.MQTT 
    3.Pubnub - http://www.pubnub.com/ (pretty new out there) 
    4. I read about Linked-in Kafka, but that seems way more advance and complicated to ny current needs. 
    

    優先パスです。 選択したソリューションは、使用するのが簡単で実装が簡単なものでなければなりません。 (サーバ側はPHPで主に書かれていますが、Node.jsのは、同様のオプションです)モバイルクライアント(または任意のタイプのクライアント)、サーバー側キューの状態についてを更新するには

    おかげ

  • +0

    あなたの最初の選択肢は、サーバー上のキューを入れて、そこにアクセスした、またはその代わりに、すべてのユーザー間でのクライアント・キューの同期を維持しようとするかどうかです。部分的には、更新の頻度と、同期が瞬間的かつ正確でなければならないかどうかに依存します。 –

    +0

    キューはサーバによって管理されるため、iOSクライアントが接続して現在キューを表示しているすべてのユーザにキューステータスを伝え、キューの状態を処理する責任がある理由を考えることはできません。私があなたが言ったことを誤解していない限り、私が示唆しているのは、サーバーは、購読したキューのすべての変更をすべてのクライアントにプッシュする必要があるということです。 – Idan

    +0

    次に、「変更されました」という通知をプッシュして、クライアントに戻ってキューの「ビュー」を更新させるべきです。おそらく、クライアントが特定の変更がニーズに「重要」であるかどうかをクライアントが知るように、「変更されました」という修飾語をプッシュすることができます。プッシュを処理する3つの方法は、プッシュ通知(おそらく最良の選択)、オープンを「取得」、ポーリングです。 –

    答えて

    0

    を(または任意のデータシステム/任意のタイプの構造、RDBMS、No-SQL、ファイルなど)を使用するには、PubNubを使用できます。

    お客様のクライアントはqueue-statusという名前のチャンネルを購読します(好きな名前を付けてください)。キューが成功した上で、任意のクライアントまたはサーバ側の処理で更新を取得するたびに、あなたはqueue-statusチャンネルに変更/ステータスを公開しますし、あなたの積極的な顧客をサブスクライブのすべてが< 1/4に関係なく最新情報を取得します変更のコミットそこにいるクライアントの数、または世界中のどこにいるのか。クライアントアプリケーションは、そのチャネル上で(プッシュ通知)APNSのために登録され、アプリがフォアグラウンドで実行されているかいないされていません

    場合、クライアントデバイスは、プッシュ通知を受け取ることになります。

    使用PubNub PHP SDK for your server side to publish the messages、およびPubNub iOS SDK to subscribe to receive the messages

    そしてPubNub Access Manager to lock down access to your channelsを使用することを忘れないでください。

    関連する問題