2013-02-18 126 views
4

所以我有我的iOS應用程序(這是一個社交網絡應用程序),我想添加一個消息傳遞和聊天系統。我已經找到了這樣做的方法,但沒有找到一個我可以完全理解或實現的方法,因爲大多數方法對於我想要的太複雜。在應用程序中的iOS消息傳遞系統(聊天系統)

我有一個「朋友列表」視圖控制器,當在列表中的某個名稱中觸摸時,「消息」視圖控制器(就像任何即時通訊窗口)進入您可以與所選朋友聊天的地方。

我發現這樣做的方式是XMPP或「TCP連接」。我嘗試瞭解XMPP,但對於XMPP,您需要「登錄」等,這將需要一個額外的ID或東西,這會使事情複雜化。我已經有了我的應用內用戶ID - 我不想只用於聊天。

第二種方法 - 建立TCP連接並通過該連接發送消息 - 我無法完全理解,也找不到它實現的示例。

回答

2

簡單聊天協議中最困難的部分是通知客戶端已收到消息的快速方法。例如,要用REST或HTTP執行此操作,需要客戶端每隔幾秒鐘輪詢一次服務器,如果您的應用需要擴展,則效率低下且不切實際。

XMPP肯定會增加額外的工作量。您的客戶端需要與XMPP服務器建立單獨的連接,並且您必須找到一種集成身份驗證的方法。但只要客戶端連接打開,它將在消息到達時通知。

雖然聊天與發佈 - 訂閱不同,但他們共享相同的設計挑戰,即如何在客戶端不必輪詢時收到消息時通知客戶端。在研究發佈 - 訂閱應用程序的選擇時,我遇到了比較XMPP,RSS和其他選項的helpful chart。同一網站提供了對polling的很好的解釋。再次,這不是聊天,但你仍然可以用它來了解問題。

如上所述,另一個選項是保持活動的TCP連接,服務器在到達時可以在其上放置響應。如果你願意,你甚至可以通過HTTP來做到這一點。我不知道有哪些服務器可以開箱即用。 (我的需求,我選擇XMPP和XMPPFramework

+0

如此,一些查詢後,我偶然發現在解析,Pusher和QuickBlox ...沒有任何實際上幫助我:(和人們告訴我XMPP太難了,我想要...我需要一個簡單的1to1 IM – LonestarX 2013-02-18 18:01:37