使用websocket + node.js与具有xmpp的本地客户端聊天服务器

我找不到任何关于使用node.js聊天服务器运行的聊天客户端与使用xmpp的客户端进行比较的合理基准。

我知道node.js是asynchronous的,据我所知,xmpp也是如此。 但是,我主要关心的是具有相同数量的并发用户的性能。

我需要这些信息来编写一个android应用程序。 想知道你的意见和使用这两个系统的优势/劣势。

提前致谢。

虽然我明白你在问什么,但你试图比较一个服务器端JavaScript实现(Node.js)和一个消息协议(XMPP)。

有许多现成的XMPP服务器和许多已经写好的客户端库。 因为这些是你将要与之合作的具体事情,所以如果你正在考虑使用XMPP,那么你应该对它们进行评估,然后将它与其他问题的解决scheme进行比较。

如果你在Node和Websocket上自己实现一些东西,那么你需要处理XMPP已经提供的所有东西,比如authentication,encryption,应用协议等,以及所有的服务器端路由逻辑。 许多XMPP服务器也支持群集 – 透明地在单个域后面运行多个服务器。

最终select是你的,因为你最了解你的特定应用程序。 您应该比较解决scheme不仅在他们的单节点性能,而且开发时间和可伸缩性等因素。

我已经为客户build立了几个Node.js聊天服务,虽然我可以说很容易得到一个基本的聊天服务与Node.js运行,你可能会花费大量的时间重新发明车轮,如果你select走这条路。 像eJabberd这样的XMPP服务器有很多内置的function,你不需要重build。 身份validation,多用户聊天,审核(踢/禁止/忽略),用户喜好,日志logging等

对于我所从事的项目,eJabberd肯定是过分的,因为他们只需要基础知识,但是您应该仔细考虑您的使用案例,以便做出决定。

我正在考虑为XMPP创build一个Node.js Web客户端,使其类似于Campfire,但是以eJabberd作为其后端。 我并没有真正承诺要这样做,但我认为这将是获得两全其美的好方法。

这也取决于你正在写什么样的客户端:基于浏览器的客户端使用BOSH,这是基于HTTP的XMPP,它使用长轮询(类似于彗星)。 这将每个客户端每30秒创build至less一个请求(取决于设置),在获得几千个客户端后开始累加。 我有兴趣看到比较 – 似乎networking套接字应该有一个优势。