【问题标题】:Design a chat client in a website. Shoud I use XMPP?在网站中设计一个聊天客户端。我应该使用 XMPP 吗?
【发布时间】:2012-01-11 07:15:47
【问题描述】:

我打算使用 ruby​​ on rails 设计一个网站。我想要实现的功能之一是聊天功能。用户可以与网站的其他用户/成员聊天的地方。为了设计类似的东西,我应该使用什么,或者换句话说开始学习?

XMPP 是答案吗?如果是这样,我会很高兴有人能描述一下从那里去哪里和/或推荐一些书。谢谢!

我说 XMPP 是因为我知道 Facebook 使用它并且我打算创建类似的东西

【问题讨论】:

    标签: ruby-on-rails xmpp chat


    【解决方案1】:

    协议可能会成为一个非常棘手的话题,如果没有经验,自己实现一个运行良好的协议可能会非常令人生畏。特别是如果它与多方之间的(近)实时通信有关。如果这应该扩展到任何大量的访问者,那么正确实施它可能会非常困难。

    XMPP 是一个已经很成熟的协议,它已经被动摇并且已经有许多稳定的实现。因此在使用时,您无需再为协议的设计或实现操心。出于这个原因,我真的很推荐它。它也是一个相当容易理解的协议,即使您必须在开始时花一些时间阅读基础知识。比http://xmpp.org 更远的地方寻找文档。

    设置 XMPP 服务器可以在几分钟内完成,具体取决于您的操作系统和您选择的服务器。需要注意的是,如果您想要自定义服务器,您还必须在某种程度上了解它的内部结构,这可能需要也可能不需要一些时间。

    底线是:选择 XMPP 和现有的 XMPP 库和服务器,您可以免费获得 90% 的功能,并且可以专注于实现您的客户端。问题是,您需要深入了解 XMPP 和服务器的细节,这会比滚动您自己的协议花费更长的时间吗?从长远来看,您自己的协议会像 XMPP 一样满足您的需求吗?

    【讨论】:

    • 谢谢你们。这对我帮助很大。我仍在研究,但这些建议非常有用:)
    【解决方案2】:

    您始终必须考虑要花多少钱来实现这一点。 如果您使用 XMPP,您将能够运行 XMPP 标准聊天服务器(在 Rails 之外),并且应该能够使用带有 XMPP 到 HTTP 桥的 JavaScript 客户端。

    一个快速谷歌搜索提出的项目是Strophe

    但我认为,您应该仔细考虑 XMPP 是否真的适合您的需求,以及您是否真的想为聊天解决所有这些麻烦。

    实现自己的也并不简单,尤其是当您自己编写所有长轮询和信号时。 但这并非不可能,并且应该在几天内为您提供一个简单的工作解决方案。

    在 Rails 中自己进行聊天将需要您使用替代数据库,因为 Rails 无法在请求之间将数据存储在内存中,并且在 ActiveRecord 中持久保存聊天数据似乎不是一个非常可扩展和好主意。

    显然,使用 XMPP 的好处是您的用户可以使用 iChat、Jabber 或任何其他 XMPP 客户端连接到您的聊天服务。

    【讨论】:

    • 谢谢你们。这对我帮助很大。我仍在研究,但这些建议非常有用:)
    猜你喜欢
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多