聊天应用程序 : pubsubhubbub vs xmpp

标签 chat xmpp tornado websub

我不确定构建聊天应用程序的最佳堆栈。目前我正在考虑两个主要选择:

  • Facebook Tornado
  • 缺点:不使用主聊天协议(protocol) xmpp,而是使用 pubsubhubbub
  • 优点:我真的很喜欢它的简单开发(webserver + webframework); pubsubhubbub 作为协议(protocol)似乎也比 xmpp 更简单;我知道 python
  • xmpp + 博世、旁遮普语、ejabberd
  • 缺点:不懂 erlang;总体似乎有点难以开发
  • 优点:使用 xmpp 协议(protocol)

  • 聊天应用程序需要具备以下条件:
  • 私信
  • 公共(public)房间
  • 包间
  • 房间的聊天记录(不是永久的,只是最近的 n 条消息)
  • html 嵌入
  • 聊天室网址

  • 这两个选项似乎都是可扩展的,所以我并不担心(我们也在考虑在亚马逊的 ec2 中运行该应用程序)。我知道有一个项目使用 tornado 构建 xmpp 服务器,但它还没有准备好用于生产,而且我们的截止日期也没有那么大。基本上,我主要担心的是开发的难易程度与后来使用 pubsubhubbub 开发聊天应用程序的遗憾,但我在某处读到 PubSubHubbub 最终可能会取代 XMPP,因为 REST 取代了 SOAP - 那么你怎么看?

    最佳答案

    去 XMPP。

    开箱即用,ejabberd 支持您的所有要求。您不需要查看任何 erlang 并为 ejabberd 编写自定义模块。
    使用 Strophejs,浏览器中的 XMPP(这显然是您正在做的)非常棒。

    对于您关于 pubsubhubbub 替换 XMPP 的最后一个问题,不要指望它。 XMPP 已有 10 多年的历史,在客户端和服务器上都是可靠的开源和专有的可互操作实现,并且非常优雅,因此它不会消失。

    你正在开发一个聊天应用程序,这就是 XMPP 的用途。

    关于聊天应用程序 : pubsubhubbub vs xmpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2467724/

    相关文章:

    html - 聊天框工作?这是正确的方法吗?

    java - 如何编写一个聊天程序,就像 gtalk 或 yahoo 一样

    android - XMPP aSmack MultiUserChat 服务器继续发送已收到的消息

    mongodb - Mongodb 中的读自己写的一致性

    python - 如何为整个 Tornado Web 应用程序建立与 SQLite 数据库的一个连接?

    java - 为什么接口(interface)对于创建 RMI 应用程序很重要?

    java - Android - Firebase - 将用户发送到聊天室

    python - 创建一个与 Google Talk 集成的聊天机器人,最好使用 Python 或 Go

    xmpp - 是否有可能只有不同资源的 JID 加入同一个多用户聊天室

    sockets - 如何将网络套接字连接发送到 Tornado 中的不同进程?