Phalcon php vs node.js
Posted
技术标签:
【中文标题】Phalcon php vs node.js【英文标题】: 【发布时间】:2013-05-15 01:53:30 【问题描述】:我们将为我们的应用程序开发 rest 服务器(所有逻辑都在客户端 javascript 上)。 所以我们考虑使用 Phalcon php,但我们还需要创建实时聊天系统,使用 node.js 更容易做到这一点。这让我们考虑使用 node.js 代替 phalcon
不幸的是,我们在 node.js 方面的经验并不好,我们喜欢 phalcon 的性能和内在美。
问题是,有人比较 phalcon 和 node.js 的性能吗?可能最好仅将 node.js 用于长轮询聊天请求,但我不喜欢项目与如此不同的工具连接。
【问题讨论】:
嗯,这可能是一个迟到的答案,但也许其他人会觉得它有用:techempower.com/benchmarks/#section=data-r6 【参考方案1】:您正在尝试比较两种不同的 IMO。
node.js 具有强大的功能和灵活性,但 Phalcon 也是如此。如果你想用 Phalcon 创建一个聊天应用程序,那么你需要在浏览器中实现某种轮询机制,每 X 秒刷新一次聊天窗口。从数据库中获取/插入数据将是 Phalcon 的工作。 Javascript 将用于进行轮询,即每 X 秒刷新一次聊天页面。
这种方法的问题在于,您可能每 X 秒从每个打开了聊天应用程序的客户端访问您的 Web 服务器 - 从而刷新聊天内容,即使没有消息也是如此。这很快就会变得非常密集。
node.js 能够立即向订阅的客户端发送消息。我相信 Web 套接字可以做同样的事情。
观看此视频,您将了解如何轻松实现这一目标:
https://www.youtube.com/watch?v=lW1vsKMUaKg
我们的想法是使用不会给您的硬件带来负担的技术,而是与之协作。拥有“订阅”通知系统(例如套接字或 node.js)可以减少应用程序的负载,因为只有订阅的客户端会收到新消息,而聊天客户端不需要完全刷新。
Phalcon 的速度非常适合后端,它可用于构造消息,然后将消息传递到传输层并发送到客户端。根据您希望如何实现这一点,有很多选择,您可以轻松混合和匹配技术:)
【讨论】:
应该可以编写一个 PHP 守护进程,在 Phalcon 中调用也可以支持套接字。 我可能误解了你的答案,但我看不出 AJAX 轮询与 Web 套接字/服务器推送技术和 PHP 与 Node.js 之间的关系。您可以使用 PHP 和 Node.js 进行 AJAX 轮询(正常或长时间),也可以使用 PHP(通过使用 Comet)和 Node.js 进行服务器推送。我认为必须指出的是,Node.js 的优势不是原始性能而是可扩展性,最大的区别在于 Node.js 是事件驱动和单线程【参考方案2】:正如@Nikolaos Dimopoulos 所说,您正在尝试比较两种不同的事物。
但这是我的建议,虽然您对 PhalconPHP 框架有经验,并且希望从 Phalcon 的速度和性能中受益,但您可以在 Phalcon FW 中实现 Web 应用程序,并将 Node.JS 中的聊天系统作为服务实现.
如果您的 Web 应用程序“The Phalcon 应用程序”需要从后端推送消息,您可以使用 http://elephant.io/ 库来实现,我之前使用 Yii 框架和 Node 做过,并且运行良好.
【讨论】:
【参考方案3】:我的建议是使用你已经知道的,只为聊天应用程序试验 nodejs。 主要是因为你说你没有这方面的经验,所以,因为聊天应用是很多人做的,所以你会发现很多例子。
通过这样做,您将从 node 中学到很多东西,甚至可以考虑从 Phalcon 迁移,如果它适合您的需要,例如使用 expressjs 提供的功能。
我不会根据性能选择其中一个。
【讨论】:
这是真的,带着糟糕的体验去生产有点吓坏了。但是编写php和node.js也不是很酷,因为它是两台服务器,我们需要考虑如何与node.js等共享php会话。 我不明白聊天是整体的一部分,我认为它是一个独立的应用程序。我理解您的担忧,但如果聊天应用程序只能充当“消息发布者”,那么我认为这不是一个大问题。以上是关于Phalcon php vs node.js的主要内容,如果未能解决你的问题,请参考以下文章