所以我有我的iOS应用程序(它是一个社交网络),我想添加一个消息和聊天系统。我已经找到了做到这一点的方法,但没有找到一个我可以完全理解或实现的方法,因为大多数都太复杂了我想要的东西。
我有一个“朋友列表”视图控制器,当触摸列表中的一个名称时,“消息”视图控制器(就像任何im窗口一样)进入你可以与所选朋友聊天的地方。
我发现这样做的方式是XMPP或“TCP连接”。我尝试了解XMPP但是对于XMPP,你需要“登录”等,这需要一个额外的id或一些会使事情复杂化的东西。我已经有我的应用内用户ID - 我不想再用于聊天。
第二种方法 - 建立TCP连接并通过该连接发送消息 - 我无法完全理解,也找不到它实现的例子。
答案 0 :(得分:2)
简单聊天协议中最困难的部分是通知客户端已收到消息的快速方法。例如,要使用REST或HTTP执行此操作,需要客户端每隔几秒轮询一次服务器,如果您的应用需要扩展,这将是低效且不切实际的。
XMPP肯定会增加额外的工作量。您的客户端需要与XMPP服务器建立单独的连接,您必须找到一种集成身份验证的方法。但只要客户端打开了连接,就会在消息到达时通知它。
虽然聊天与发布 - 订阅不同,但它们共享相同的设计挑战,即如果在没有客户端必须轮询的情况下收到消息时通知客户端。在研究发布 - 订阅应用程序的选择时,我发现helpful chart比较了XMPP,RSS和其他选项。同一网站对polling提供了很好的解释。同样,它不是关于聊天,但你仍然可以用它来理解问题。
正如您所提到的,另一个选项是保持活动的TCP连接,服务器可以在它们到达时放置响应。如果需要,您甚至可以通过HTTP执行此操作。我不知道任何服务器开箱即用。 (根据我的需要,我选择了XMPP和XMPPFramework。)
答案 1 :(得分:0)
您可以查看使用XAMPP框架的链接...