【问题标题】:Ajax Push Engine (APE) Vs Node.jsAjax 推送引擎 (APE) 与 Node.js
【发布时间】:2012-08-18 22:39:57
【问题描述】:

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

我已经实现了一个基于轮询的应用程序(每个客户端每 30 秒后向服务器发送一次 http 请求。)应用程序在 10 个用户进入后实际上并没有扩大。这个应用程序。使用 MySQL、PHP、HTML 和 jQuery 构建。

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

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

【问题讨论】:

    标签: php jquery node.js ape


    【解决方案1】:

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

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

    另一方面,如果您打算通过您的服务器与两个用户通信(做一些私人的两人聊天),这完全可以使用 socket.io。

    【讨论】:

    • 谢谢!我将检查 Socket.IO,关于我的第三个请求,我的意思是两个用户之间通过服务器进行通信。
    • @Vijay 使用 socket.io 可以(而且很简单)将消息中继到服务器作为中间人
    • 使用socket.io意味着现有的php应用必须用node.js重写吧?还是必须在两者(php和node.js)之间使用一个通信通道,比如MQ之类的?
    • 是的,现有的php逻辑必须在node.js中表达,至少与服务器推送直接相关的部分。
    • Socket.IO 看起来令人印象深刻。考虑使用它。
    【解决方案2】:

    尽管现在每个人都在使用 node.js,但我们做了一个基于 APE 的聊天应用程序,我们对此非常满意。

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

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

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

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

    【讨论】:

    • 你是如何用 APE 设置 nginx 的,你描述的方式?
    • 这是一个工作配置 - 我很确定它并不完美,但它完成了工作:pastebin.com/3Urdy5Fi
    • 我建议用这个替换官方的客户端库:github.com/ptejada/ApePubSub 我发现它的API更容易,它的加载不像官方的那样混乱。
    • APE 死了吗?我想在一个项目中尝试一下,但他们的网站目前非常没用......
    • 根据网站和@paraboul的github账号,该项目处于非活动状态。检查谷歌组:groups.google.com/forum/?fromgroups#!forum/ape-project
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      对于大型应用程序,我不推荐使用ape,它对于聊天应用程序来说还不错,但就海量数据传输而言,客户端的浏览器会在一段时间后开始变慢并崩溃。

      【讨论】:

      • 这是您自己的经历还是您在某处读到的?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多