3

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

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

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

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

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

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

4

2 回答 2

4

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

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

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

于 2012-06-23T22:24:21.680 回答
1

您可以尝试使用 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

于 2012-12-12T00:51:32.297 回答