2012-03-31 73 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更好。