iOSアプリケーションにアイテムのリアルタイムキューを実装する必要があります。 (後でAndroidも)。iOSクライアントでリアルタイムキューを実装する
主な使用例は、ユーザーがすべてのユーザーによってリアルタイム共有キューを表示することです。多くのキューが存在する可能性がありますが、現在のところ、ユーザーは一度に1つのキューしか見ることができません。 1人のユーザーがキューからアイテムを削除した場合、同じキューを表示しているiOSアプリの他のすべてのユーザーは、キューの更新をリアルタイムで確認する必要があります。サーバーが新しいアイテムが特定のキューに追加されたことを検出した場合、そのキューをリアルタイムで表示している他のすべてのクライアントにプッシュする必要があります。
このようなメカニズムを実装するにはどうすればよいでしょうか?現在のところiOSのみをサポートしていますが、後で他のモバイルプラットフォームを追加することは面倒ではないような簡単な解決策でなければなりません。 Appleのプッシュ通知または他の永続的な接続オプションを使用して - (基本的にのUIWebViewを提示する)ウェブ技術(JS &のHTML5)
- :私は推測
は、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のは、同様のオプションです)モバイルクライアント(または任意のタイプのクライアント)、サーバー側キューの状態についてを更新するには
おかげ
あなたの最初の選択肢は、サーバー上のキューを入れて、そこにアクセスした、またはその代わりに、すべてのユーザー間でのクライアント・キューの同期を維持しようとするかどうかです。部分的には、更新の頻度と、同期が瞬間的かつ正確でなければならないかどうかに依存します。 –
キューはサーバによって管理されるため、iOSクライアントが接続して現在キューを表示しているすべてのユーザにキューステータスを伝え、キューの状態を処理する責任がある理由を考えることはできません。私があなたが言ったことを誤解していない限り、私が示唆しているのは、サーバーは、購読したキューのすべての変更をすべてのクライアントにプッシュする必要があるということです。 – Idan
次に、「変更されました」という通知をプッシュして、クライアントに戻ってキューの「ビュー」を更新させるべきです。おそらく、クライアントが特定の変更がニーズに「重要」であるかどうかをクライアントが知るように、「変更されました」という修飾語をプッシュすることができます。プッシュを処理する3つの方法は、プッシュ通知(おそらく最良の選択)、オープンを「取得」、ポーリングです。 –