在iOS客户端实现实时队列

时间:2012-03-23 11:16:51

标签: php ios real-time message-queue publish-subscribe

我需要在iOS App中实现项目的实时队列。 (后来也是Android)。

主要用例是让用户查看所有用户的实时共享队列。可以有很多队列,但目前用户一次只能看到一个队列。 如果一个用户从队列中删除项目,则查看同一队列的iOS应用程序的所有其他用户应实时查看队列更新。如果我的服务器检测到某个新项目已添加到某个队列,则应该将其推送到实时查看该队列的所有其他客户端。

实施此类机制的最佳方式是什么?目前仅支持iOS,但它应该是一个简单的解决方案,以便以后添加其他移动平台不会是麻烦。

我想有两个主要选择:

  1. 使用网络技术(JS& Html5)(基本上呈现UIWebView)
  2. 本地方式 - 使用apple的推送通知或其他持久连接选项。 (如果我希望能够提醒用户队列更改,即使应用程序在后台或上帝禁止关闭),推送通知也会更好。
  3. 显然我也可以选择混合解决方案。

    我熟悉以下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也是一个选项)

    由于

1 个答案:

答案 0 :(得分:0)

要更新移动客户端(或任何类型的客户端)有关服务器端队列(或任何类型的任何数据系统/结构,RDBMS,No-SQL,文件等)的状态,您可以使用{{3 }}

您的客户将订阅一个名为queue-status的频道(根据您的喜好命名)。无论何时任何客户端或服务器端进程更新队列,在成功提交更改后,您都会将更改/状态发布到queue-status通道,并且所有主动订阅客户端都将获得< 1/4无论有多少客户,他们所在的世界都在哪里。

如果客户端应用程序在该频道上注册了APNS(推送通知)且应用程序未在前台运行或未在前台运行,则客户端设备将收到该推送通知。

使用PubNubPubNub PHP SDK for your server side to publish the messages

不要忘记使用PubNub iOS SDK to subscribe to receive the messages