我需要在我的iOS应用中实现项目的实时队列。 (后来也是Android)。在iOS客户端中实现实时队列
主要用例是让用户看到所有用户的实时共享队列。可能有很多队列,但目前用户一次只能看到一个队列。 如果一个用户从队列中删除项目,则查看同一队列的iOS应用的所有其他用户都应实时查看队列更新。如果我的服务器检测到某个新项目已添加到特定队列中,则应该将其推送给实时查看该队列的所有其他客户端。
实现这种机制的最佳方式是什么?目前只支持iOS,但它应该是一个简单的解决方案,以便稍后添加其他移动平台不会是一件麻烦事。
我想有两个主要选择:
- 使用Web技术(JS & HTML5)(基本上呈现一个UIWebView)
- 生方式做了 - 使用苹果的推送通知或其他永久性连接选项。 (推送通知更好,如果我希望能够提醒用户队列更改,即使应用程序处于后台或上帝禁止关闭)
很明显,我也可以选择混合解决方案。
我熟悉以下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中是一个选项,以及)
感谢
您的第一选择是将队列放在服务器上并让它在那里访问,或者尝试在所有用户之间保持客户端队列的同步。部分决定取决于更新发生的频率以及同步必须如何瞬时和精确。 – 2012-03-23 11:21:37
队列将由服务器维护,我想不出任何充分的理由,为什么我的iOS客户端应负责将队列状态传递给所有连接并正在查看队列的用户,以及处理队列状态。除非我误解了你所说的内容,我建议的是,服务器应该将所有订阅者的队列变化推送给他们。 – Idan 2012-03-23 11:45:02
然后,您应该只需按一下“已更改”通知,让您的客户回来并刷新队列的“视图”。你也许可以推一个限定词来“改变”,这样客户就知道特定的改变是否对他们的需求是“重要的”,但这就跟我一样。处理推送的三种方法是推送通知(可能是最佳选择),打开“获取”和轮询。 – 2012-03-23 15:45:00