2013-02-18 97 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