2012-03-31 72 views
1

我正在写一个IOS应用程序,基本上是一个Jabber聊天应用程序。我为xmpp服务器使用Openfire,迄今为止它非常棒。我现在面临的问题是推送通知。该应用程序是用Xcode编写的,它从PHP Api获取用户数据。 Openfire是xmpp服务器。问题是,当应用程序向openfire发送消息时,我还需要查询Php api以查看用户是否在线,如果他们不在线,则发送推送通知。对于每个发送的消息都必须发生这种情况,并且您可能会猜到这会影响所有请求发生时的性能。Openfire和推送通知

我有一切工作,我只是不能过去这个驼峰。如果只有openfire在接收到消息时会摒弃我选择的请求。

任何人都可以提出一个更好的主意吗?基本上需要知道用户是否在线(在线状态),以便我知道要发送推送通知,并且我不希望每发送一条消息都从我的应用程序发出两个请求。谢谢。

+0

请问您可以添加一个更详细的答案你已经用openfire代码做了什么? – user1054134 2014-03-08 18:42:41

回答

4

在openfire中,离线用户的消息存储在离线表中。因此,如果der是onOfline表中的任何条目,那么您的php代码不需要担心用户的状态,这意味着用户处于脱机状态。现在创建一个调度程序,它将继续查看离线消息的离线消息,将它们聚集在一起并将通知推送给用户。

+0

对不起,我没有接受你的答案更及时。我确实最终使用了你的解决方案,它的工作非常出色。 – pogeybait 2012-10-20 09:57:50

+0

嗨pogeybait, 很高兴看到你的工作..hope可以帮助你进一步解决问题 – 2013-02-14 06:10:01

+0

@Vivek Giri你是什么意思的调度 - 一个openfire的java代码或数据库调度程序? – user1054134 2014-03-08 18:53:57

0

我在XAMPPHP库中花了很多时间,但无法找到任何合适的解决方案。所以用jabber服务器开发web基础聊天应用程序。而不是使用XAMPPHP,你可以使用“http://strophe.im/strophejs/”它比XAMPPHP快得多,你可以找到Strophe js更多的js插件。你也可以在strophe js上找到更多的现成的xmpp客户端。所以它会比XAMPHP更好。