繁体   English   中英

Ajax Push Engine(APE)与Node.js

[英]Ajax Push Engine (APE) Vs Node.js

我正在考虑将实时数据从服务器推送到客户端的几个选项。

我已经实现了一个基于轮询(每个客户端在每30秒后向服务器发送http请求。)应用程序,这个应用程序在10个用户进入后真的无法扩展。这个应用程序。 是使用MySQL,PHP,HTML和jQuery构建的。

请考虑以下要求,建议哪一个更好 - APE Vs node.js

  1. 应该能够一次处理至少400个并发连接
  2. 服务器应该能够将数据推送到所有这些客户端。
  3. 客户端将在彼此之间发送数据。

我强烈建议你看一下Socket.IO 它是服务器推送的完整解决方案,包括服务器端库(用node.js编写)和以跨浏览器方式制作的客户端JS库。 我认为没有理由让你实现自己的代码来做已经制作,工作和测试的代码。

socket.IO无法处理的唯一情况是你的第三个请求,但无论如何这是不可能的。 如果我理解正确,您希望两个客户在没有第三方服务器帮助的情况下进行通信? 您无法将HTTP更改为P2P,至少现在不行。

另一方面,如果您打算通过服务器(使用私人双人聊天)与两个用户进行通信,那么使用socket.io是完全可行的。

即使现在每个人都在向node.js运行,我们也做了一个基于APE的聊天应用程序,我们对它非常满意。

APE提供了“开箱即用”的内容,因为它是服务器端JS和客户端框架APE_JSF的组合,它提供了从socket.io获得的功能(以及更多)。

在这个项目中,我们使用实时消息处理~9000个并发用户 nginx服务器放在APE前面以提供deflate / gzip支持

即使在“不那么高端”的机器上,这种配置(没有nginx也可以)处理您的要求没有问题。

由于您可以将数据推送到“频道”或单个用户,因此您应该能够通过APE从广播到直接消息实现您正在寻找的内容。

如果您在现有堆栈中使用Apache,那么正如您已经说过的那样,即使您使用长轮询而不是连续轮询 ,也会出现扩展用户的问题。 解决方案可能是使用像nginx这样的高性能Web服务器来处理许多并发连接。

另一方面,node.js是为这种连接并发而设计的,并且有一些软件包,比如socket.io ,它可以使您的开发人员生活更轻松,因为它提供了各种带有回退解决方案和其他有用功能的传输选项。

我不推荐用于大规模应用程序的猿,它适用于聊天应用程序,但就大规模数据传输而言,客户端的浏览器开始减速并在一段时间后崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM