【问题标题】:PHP and Node.js or only Node.js?PHP 和 Node.js 还是只有 Node.js?
【发布时间】:2012-06-23 12:17:08
【问题描述】:

我想写一个简单的聊天应用程序(供测试使用)。

用户和消息被持久化在 MongoDB 中,会话被 Redis 存储。

PHP (Symfony2) 提供身份验证、注册、密码重置等服务,并服务于公共站点(如 /、/contact 等)。

当用户登录后,它就可以控制聊天应用程序。 Backbone.js 处理应用程序,node.js 通过 rest(或 socket.io)提供数据。

我应该同时使用 PHP 和 Node 还是应该只使用 node?​​b>

仅使用节点的优点是没有端口冲突,相反的是节点应用程序变得非常大并且不那么可读(恕我直言:cmf,注册,授权,电子邮件处理比使用 symfony 更容易节点)

【问题讨论】:

  • 你不想用相同的 ip:port 绑定 2 个服务,apache 在 80,8080 运行并且可以更改为你想要的任何内容,如果我没记错的话你可以在 node.js 中指定哪个你想使用的端口,所以说 apache 是 localhost:9999 和 node.js 在 localhost:8888 没有冲突..
  • 您必须提到该网址仍然必须是可读的。但间接地你回答了这个问题。因此,backbone.js 或 node.js 可以在不同的端口上运行。两种服务(node.js 和 symfony)的集成怎么样?是否有最佳实践?

标签: php http node.js symfony backbone.js


【解决方案1】:

将 Web 应用程序逻辑保留在 PHP 中是完全有意义的。这就是 PHP 擅长的地方,将其移植到 node.js 代码可能会是一种浪费和痛苦的体验。

另一方面,Node 擅长联网和服务长时间运行的连接,例如 WebSockets(socket.io、SockJS 等)。所以使用它的聊天服务器也很有意义。

我建议您同时使用这两种方法,因为它们中的每一种都解决了它擅长的特定问题。您可以使用某种消息队列轻松连接它们。

【讨论】:

    【解决方案2】:

    您可以尝试使用 JooDee,这是一个节点网络服务器,可让您在网页中嵌入服务器端 javascript。如果您熟悉 Node 和 PHP/ASP,那么创建页面是轻而易举的事。下面是页面的样例:

    <!DOCTYPE html>
    <html>
    <:  //server side code in here
        var os = require('os');
        var hostname = os.hostname();
    :>
    <body>
        <div>Your hostname is <::hostname:></div>
    </body>
    </html>
    

    使用 JooDee 还可以通过将属性附加到“客户端”对象服务器端,并在客户端 javascript 中访问生成的“客户端”对象,从而毫不费力地向客户端公开服务器 JavaScript 变量。

    https://github.com/BigIroh/JooDee

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2012-08-18
      • 2013-02-19
      • 1970-01-01
      • 2013-09-16
      • 2016-08-18
      • 2011-08-31
      相关资源
      最近更新 更多