2010-08-01 66 views
4

我正在研究爲iPhone製作基於聊天的應用程序(它並不是真正的常規文本聊天,但其原理是相同的)。如何在iPhone上創建聊天系統?

最多6人可以同時登錄到同一個聊天室,最基本的問題是如何有效地檢查新消息?

我需要定期輪詢服務器嗎?或者有什麼辦法可以在有新內容需要關注時從服務器觸發電話事件?

如果不得不一直投票,我擔心由此產生的滯後,因爲每個參與者必須等待更長的時間才能將自己的回覆發佈給其他人。而且,對於服務器來說,處理大量請求的可能性也可能太大。它也將浪費帶寬,這對用戶來說不是免費的...

不幸的是我不能爲這個應用程序設置一個套接字服務器,它必須基於常規的LAMP配置。

回答

0

在我看來最好的解決方案是套接字,但是你說你不能爲此實現服務器端。

你也可以通過推送通知來實現它。您也可以在應用程序運行時接收推送信息,並在推送過程中發送所需的所有數據。通常聊天消息很短...

如果您不想在服務器上混淆推送通知,那麼只要我知道,唯一剩下的就是投票。

2

我想你可以使用推送通知或XMPP(Jabber)服務器。

即使在後臺使用新的多任務功能(偵聽套接字)時,XMPP將允許您的iphone應用程序接收數據,並且我很確定您應該準備好使用LAMP服務器(或者至少打開源實現)。

請注意,iOS4多任務API不支持在後臺進行輪詢,所以您唯一的其他選項應該是推送通知。如果您是新手推送通知,則可以使用像Urban Airship這樣的服務,這可能會使此過程更輕鬆。

2

XMPP聽起來很不錯,我認爲這是聊天最好的技術。它適用於iOS應用程序。

也許此代碼示例將有助於開始在iOS應用程序中使用XMPP - 看看這個QuickBlox Chat code sample。它演示瞭如何將1-1聊天,聊天室整合到你的android應用程序中。也有指導如何工作。我認爲將它集成到您​​的應用程序中沒有問題。否則 - 評論系統下面允許問你想要的任何問題,並得到快速的答案。

此外,還有演示視頻http://www.youtube.com/watch?feature=player_embedded&v=SncQaJBBW_0這種聊天工作原理。