关于使用node.js聊天服务器V.S运行的聊天客户端之间的比较,我找不到任何合理的基准。与xmpp一起使用的客户端。
我知道node.js是异步的,据我所知,xmpp也是如此。但是,我主要担心的是具有相同数量的并发用户的性能。
我需要这些信息来编写一个Android应用程序。想要了解您使用这两种系统的意见和优点/缺点。
提前致谢。
答案 0 :(得分:1)
虽然我理解您的要求,但您正在尝试将服务器端Javascript实现(Node.js)与消息传递协议(XMPP)进行比较。
有许多现成的XMPP服务器,以及许多已编写的客户端库。由于这些是您正在使用的具体内容,因此如果您正在考虑使用XMPP,那么应该对它们进行评估,然后将其与您问题的其他解决方案进行比较。
如果您自己在Node和websockets之上实现某些功能,那么您需要处理XMPP已经提供的所有内容,例如身份验证,加密,应用程序协议等,以及所有服务器端路由逻辑。许多XMPP服务器也支持群集 - 透明地在单个域后面运行多个服务器。
最终选择权归您所有,因为您最了解您的特定应用。您不仅应该将解决方案与单节点性能进行比较,还要将开发时间和可扩展性与其他因素进行比较。
答案 1 :(得分:1)
我已经为客户建立了几个与Node.js的聊天服务,虽然我可以说使用Node.js运行基本的聊天服务很容易,但如果我们可以花很多时间重新发明轮子。你选择走这条路。像eJabberd这样的XMPP服务器具有许多内置功能,您无需重建。身份验证,多用户聊天,审核(启动/禁止/忽略),用户首选项,日志记录等
对于我参与过的项目,eJabberd肯定是矫枉过正,因为他们只需要基础知识,但你应该仔细考虑你的用例,而不是做出决定。
我正在考虑为XMPP创建一个Node.js Web客户端,以创建类似于Campfire的东西,但将eJabberd作为其后端。我并没有真正承诺这样做,但我认为这将是一个很好的方式来充分利用这两个世界。
答案 2 :(得分:1)
它还取决于您正在编写的客户端类型:基于浏览器的客户端使用BOSH,它是基于HTTP的XMPP,它使用长轮询(类似于彗星)。这会从每个客户端每30秒创建至少一个请求(取决于设置),在您获得几千个客户端后,这些请求会开始累加。我有兴趣看到一个比较 - 似乎网络套接字应该有优势。