在我的网络服务器上实施实时聊天系统的最佳方法是什么?

时间:2011-01-15 18:03:52

标签: python perl xmpp

我对基于Jabber的东西很感兴趣,但我找不到一个免费/开源的东西,所以我想写一个。

我已经安装了一个Jabber服务器,现在正在考虑我可以编写客户端的方式。我正在考虑这两种方法中的一种。

1)对在web服务器上运行的jabber脚本进行ajax调用,该脚本负责连接到服务器。但后来我想,由于jabber客户端所涉及的依赖关系,当一些客户端连接时,它可能最终消耗太多内存。

2)另一种方法是运行一个作为守护进程运行的客户端,负责处理所有繁重的工作。这样我只需要一个客户端实例发送一个欺骗性消息(发件人的名字就像用户在网站上输入的那样)。在Web服务器上运行的一个简单脚本通过某种API(可能是XMLRPC或Msgpack)与该守护进程通信?)

我认为#2更好,但我不确定。还有其他方法可以实现吗?我正在考虑使用Perl或Python。

2 个答案:

答案 0 :(得分:3)

Jabber现在通常被称为XMPP,并且有许多客户端和服务器,适用于所有语言。如果您使用的是Javascript(提到Ajax),您可能需要Strophe。大多数服务器都是模块化的,因此您只需加载所需的功能(考虑Tigase,ejabberd或xmpppy)。写自己的想法比听起来更糟糕。

答案 1 :(得分:1)

BOSH

  1. 安装prosody,因为它实际上已安装,并且内置了BOSH支持。你可以跳过这个,但是你需要找到如何通过ejabberd使用BOSH。
  2. 使用strophe.js来实现此目的(使用BOSH)。新浏览器支持跨域请求(CORS - >读取无代理BOSH部分)。旧的浏览器可以使用代理或在中间使用闪存作为代理。
  3. 阅读Professional XMPP Programming with JavaScript and jQuery以了解strophe。它甚至还有章节解释如何创建聊天。
  4. Node.js的

    或者您可以考虑使用socket.io安装node.js来创建聊天系统。