app中的iOS消息系统(聊天系统)

所以我有我的iOS应用程序(它是一个社交网络),我想添加一个消息和聊天系统.我已经想办法做到这一点,但没有找到一个我可以完全理解或实现的方法,因为大多数都太复杂了我想要的东西.

我有一个“朋友列表”视图控制器,当触摸列表中的一个名称时,“消息”视图控制器(就像任何im窗口一样)进入你可以与所选朋友聊天的地方.

我发现这样做的方式是XMPP或“TCP连接”.我尝试了解XMPP但是对于XMPP,你需要“登录”等,这需要一个额外的id或一些会使事情复杂化的东西.我已经拥有了我的应用内用户ID – 我不希望第二个用于聊天.

第二种方法 – 建立TCP连接并通过该连接发送消息 – 我无法完全理解,也无法找到实现它的示例.

最佳答案 简单聊天协议中最困难的部分是通知客户端已收到消息的快速方法.例如,要使用REST或HTTP执行此操作,需要客户端每隔几秒轮询一次服务器,如果您的应用需要扩展,则效率低且不切实际.

XMPP肯定会增加额外的工作量.您的客户端需要与XMPP服务器建立单独的连接,您必须找到一种集成身份验证的方法.但只要客户端打开了连接,就会在消息到达时通知它.

虽然聊天与发布 – 订阅不同,但它们共享相同的设计挑战,即如果在没有客户端必须轮询的情况下收到消息时通知客户端.在研究发布 – 订阅应用程序的选择时,我发现helpful chart比较了XMPP,RSS和其他选项.同一网站提供了对polling的一个很好的解释.再次,它不是关于聊天,但你仍然可以用它来理解问题.

正如您所提到的,另一个选项是保持活动的TCP连接,服务器可以在它们到达时放置响应.如果需要,您甚至可以通过HTTP执行此操作.我不知道任何服务器开箱即用. (根据我的需要,我选择了XMPP和XMPPFramework.)

点赞