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

问题描述 投票:4回答:2

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

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

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

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

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

python perl xmpp
2个回答
3
投票

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


1
投票

BOSH

  1. 安装韵律因为它实际安装得很好并且内置了BOSH支持。 你可以跳过这个,但是你需要找到如何通过ejabberd使用BOSH。
  2. 使用strophe.js来实现它(使用BOSH)。 新浏览器支持跨域请求( CORS - >读取无代理BOSH部分)。 旧的浏览器可以使用代理或在中间使用闪存作为代理。
  3. 阅读使用JavaScript和jQuery的专业XMPP编程来学习strophe。 它甚至还有章节解释如何创建聊天。

Node.js的

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

© www.soinside.com 2019 - 2024. All rights reserved.