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

我找不到关于该使用Node.js的聊天服务器VS与XMPP工作的客户端运行的聊天客户端之间的比较的合理基准。

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

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

提前致谢。


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

有许多现成的XMPP服务器和许多已经编写的客户端库。 由于这些是您将要与之合作的具体内容,因此如果您正在考虑使用XMPP,那么应该对它们进行评估,然后将其与其他问题的解决方案进行比较。

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

最终选择是你的,因为你最了解你的特定应用。 您应该比较解决方案,不仅是单节点性能,还有开发时间和可伸缩性等因素。


我已经为客户构建了一些Node.js聊天服务,虽然我可以说通过Node.js获得基本的聊天服务很容易,但如果您选择使用Node.js,您可能会花费大量时间重新开发这个轮子走这条路。 像eJabberd这样的XMPP服务器有很多内置的功能,你不需要重建。 身份验证,多用户聊天,审核(踢/禁止/忽略),用户首选项,日志记录等。

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

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


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

链接地址: http://www.djcxy.com/p/10521.html

上一篇: Chat server with websocket+node.js vs a native client with xmpp

下一篇: How to handle two segues going to the same view controller?