Python 什么';在我的Web服务器上实现实时聊天系统的最佳方式是什么?

Python 什么';在我的Web服务器上实现实时聊天系统的最佳方式是什么?,python,perl,xmpp,Python,Perl,Xmpp,我对一些基于Jabber的东西感兴趣,但我没有找到一个免费/开源的,所以我想写一个 我已经安装了Jabber服务器,现在正在考虑如何编写客户端。我在想这两种方法中的一种 1) 对运行在Web服务器上的jabber脚本进行的ajax调用,该脚本负责连接到服务器。但后来我想,由于jabber客户端中涉及的依赖关系,当几个客户端连接时,它可能会消耗太多内存 2) 另一种方法是运行作为守护进程运行的客户机,该守护进程负责所有繁重的工作。这样,我只需要有一个发送伪造消息的客户端实例(发送者的名称与用户在站

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

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

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

2) 另一种方法是运行作为守护进程运行的客户机,该守护进程负责所有繁重的工作。这样,我只需要有一个发送伪造消息的客户端实例(发送者的名称与用户在站点上输入的名称相同)。在Web服务器上运行的一个简单脚本通过某种API(可能是XMLRPC或Msgpack?)与该守护进程对话


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

Jabber现在通常被称为XMPP,有几十个客户端和服务器,每种语言都有。如果您使用的是Javascript(您提到了Ajax),那么您可能需要。大多数服务器都是模块化的,因此您只需加载所需的功能(考虑Tigase、ejabberd或XMppy)。写自己的东西比听起来更糟糕。

废话
  • 安装,因为它非常容易安装,并且具有内置支持。你可以跳过这个,但是你需要通过ejabberd了解如何使用BOSH
  • 用于执行此操作(使用BOSH)。新浏览器支持跨域请求(->无读取代理的BOSH部分)。旧浏览器可以使用代理或在中间使用Flash作为代理。
  • 阅读来学习strophe。它甚至有章节解释如何创建聊天室
  • Node.js

    或者你可以考虑安装No.js来创建你的聊天系统。

    有很多开源的Jabbor客户端。你到底为什么需要建立一个新的?@Apalala是如此正确,我成功地使用了OpenFire。考虑一下SPARKWeb客户端哪个?我找到的唯一一个是一个450美元的。另外,我对基于Java的不感兴趣。我的VPS上的RAM数量有限。我认为写一个简单的轻量级的东西比用一些我不需要的功能写一个臃肿的东西要好。我已经看过Strophe了,我不确定这对我是否合适。看起来整个客户机都是用Javascript实现的,所以我不确定在限制性的公司防火墙后面这是否有效。我提到ajax用于轮询服务器,真正的客户端在后端运行。至于服务器,我已经在运行ejabberd:)Strophe使用BOSH,将直接通过任何允许AJAX的防火墙。好的,我将尝试一下。这应该是一个有趣的小项目。那么perlit,你最终使用了哪种方法?我需要实现类似的东西,但我很迷茫。谢谢