4

所以我有我的 iOS 应用程序(它是一个社交网络应用程序),我想添加一个消息和聊天系统。我已经查找了执行此操作的方法,但没有找到一种我可以完全理解或实施的方法,因为大多数方法对于我想要的来说太复杂了。

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

我发现这样做的方法是 XMPP 或“TCP 连接”。我尝试理解 XMPP,但对于 XMPP,您需要“登录”等,而这将需要一个额外的 id 或一些会使事情复杂化的东西。我已经有了我的应用内用户 ID——我不想要第二个只是为了聊天。

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

4

2 回答 2

2

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

XMPP 当然增加了额外的工作。您的客户端将需要与 XMPP 服务器建立单独的连接,并且您必须找到一种集成身份验证的方法。但是只要客户端打开了一个连接,它就会在消息到达的那一刻得到通知。

虽然聊天与发布-订阅不同,但它们共享相同的设计挑战,即如何在收到消息时通知客户端,而无需客户端轮询。在研究发布-订阅应用程序的选择时,我发现了一张比较 XMPP、RSS 和其他选项的有用图表。同一个站点对轮询提供了很好的解释。同样,这与聊天无关,但您仍然可以使用它来了解问题。

正如您所提到的,另一个选项是保持活动状态的 TCP 连接,服务器可以在响应到达时放置响应。如果你愿意,你甚至可以通过 HTTP 做到这一点。我不知道有任何开箱即用的服务器。(出于我的需要,我选择了 XMPP 和XMPPFramework。)

于 2013-02-18T15:28:45.103 回答
0

您可以查看使用 XAMPP 框架的此链接...

https://github.com/KanybekMomukeyev/FacebookChat

于 2015-01-14T06:39:06.773 回答