我无法找到任何有关使用node.js聊天服务器运行的聊天客户端与使用xmpp工作的客户端之间比较的合理基准。
我知道node.js是异步的,据我所知,xmpp也是如此。但是,我的主要关注点是在同样数量的并发用户下的性能。
我需要这些信息来编写一个安卓应用程序。想知道您使用这两个系统的意见和优缺点。
先感谢您。
我无法找到任何有关使用node.js聊天服务器运行的聊天客户端与使用xmpp工作的客户端之间比较的合理基准。
我知道node.js是异步的,据我所知,xmpp也是如此。但是,我的主要关注点是在同样数量的并发用户下的性能。
我需要这些信息来编写一个安卓应用程序。想知道您使用这两个系统的意见和优缺点。
先感谢您。
虽然我理解你的问题,但你试图比较一个服务器端的Javascript实现(Node.js)和一个消息协议(XMPP)。
已经有许多现成的XMPP服务器和客户端库可供使用。如果你考虑使用XMPP,应该评估这些具体的东西,然后将其与其他解决方案进行比较。
如果你在Node和Websockets之上自己实现一些东西,那么你需要处理XMPP已经提供的所有内容,例如身份验证、加密、应用程序协议等,以及所有服务器端路由逻辑。许多XMPP服务器还支持集群——在单个域后面透明地运行多个服务器。
最终选择取决于你,因为你最了解你特定应用程序的情况。你应该比较解决方案不仅在单节点性能上,还包括开发时间和可扩展性等其他因素。
我为客户构建了几个使用Node.js的聊天服务,虽然我可以说使用Node.js轻松运行基本的聊天服务,但如果您选择这条路,您可能会花费很多时间重新发明轮子。像eJabberd这样的XMPP服务器具有许多内置功能,您无需重建。身份验证、多用户聊天、管理(踢出/禁止/忽略)、用户首选项、日志记录等。
对于我所工作的项目来说,eJabberd肯定是过度设计了,因为他们只需要基础知识,但在做出决定之前,您应该仔细考虑您的用例。
我正在考虑为XMPP创建一个Node.js Web客户端,以创建类似于Campfire的东西,但其后端是eJabberd。我实际上还没有承诺要这样做,但我认为这将是同时获得最佳效果的好方法。
这也取决于您正在编写哪种类型的客户端:基于浏览器的客户端使用BOSH,它是XMPP over HTTP,使用长轮询(类似于彗星)。这会从每个客户端创建至少一个请求,每30秒一次(取决于设置),当您获得几千个客户端后,这些请求开始累积。我很想看到这方面的比较 - 看起来Web套接字应该在这方面有优势。