【发布时间】:2018-10-14 22:09:35
【问题描述】:
我想为 Android 用户开发一个聊天应用程序将是原生的,我想知道使用 firebase 或 XMPP 哪个对我来说更容易?
【问题讨论】:
-
根据我们的 on-topic 指导,“有些问题仍然是题外话,即使它们属于上面列出的类别之一:...向我们提出的问题推荐或查找书籍、工具、软件库、教程或其他场外资源是题外话..."
标签: xmpp
我想为 Android 用户开发一个聊天应用程序将是原生的,我想知道使用 firebase 或 XMPP 哪个对我来说更容易?
【问题讨论】:
标签: xmpp
Firebase 是一个使用 Websockets 和 MongoDB 的实时数据库。您可以完全控制数据库模式,并且用于与服务器交互的所有代码都在客户端定义。以下是一些优点和缺点:
性能 Websockets 和 MongoDB 允许高性能和大量并发连接
灵活性您可以制作您需要的数据结构。如果您想发送新的消息类型,例如调查消息,您可以。您还可以支持 WebRTC 并使用 Firebase 进行信令。
持久性您可以在服务器上自动备份消息,因此如果用户丢失了他们的设备,他们可以与服务器同步并取回他们的消息。
框架 现有框架已经在 Firebase 上提供消息传递。 Chat SDK 有一个适用于 iOS 和 Android 的框架,可在 Github 上免费获取。
胖客户端所有的消息传递逻辑都定义在客户端代码中,这意味着添加一个新平台,你必须重新编写所有代码。
Not Specialized Firebase 没有定义任何协议,因此您必须自己发明。您必须决定在消息中包含哪些信息,以及如何构建数据库
XMPP 是专为消息传递而设计的服务器。就目前而言,它是行业标准的消息传递协议。大公司使用它为数百万用户提供消息传递。它用于 Skype、Facebook messenger、WhatsApp 和 Google Hangouts。
性能 XMPP 服务器可以集群扩展到数千万用户
开源有许多优秀的开源 XMPP 服务器 - ejabberd、OpenFire、Prosody
定义的协议 XMPP 是一个定义良好的协议。这意味着理论上,任何 XMPP 应用程序都可以与任何 XMPP 服务器一起运行
瘦客户端 XMPP 服务器提供所有业务逻辑,客户端只发送和解释 XML 消息流。这样可以更轻松地在多个平台上进行部署。
难以设置 XMPP 服务器可能难以设置和维护
复杂的开发为 XMPP 服务器开发客户端可能比使用 Firebase 更加困难和耗时,因为该协议有时看起来密集且过时
错误不幸的是,协议并不总是正确地遵循,这可能会导致错误
【讨论】: