我想编写一个简单的聊天应用程序(用于测试用途)。
用户和消息被持久化在MongoDB中,会话被存储在Redis中。
PHP(Symfony2)提供身份验证,注册,passwort重置等,并为公共站点提供服务(如/,/contact等)。
当用户登录时,它已控制聊天应用程序。主干.js处理应用程序和节点.js通过 rest(或 socket.io)提供数据。
我应该并行使用 PHP 和 Node 还是只使用 node?
只使用node的好处是没有端口冲突,缺点是节点应用程序变得非常大并且不那么可读(恕我直言:cmf,注册,授权,电子邮件处理使用symfony比node更容易做到)
将 Web 应用程序逻辑保留在 PHP 中是完全有意义的。这就是PHP擅长的,将其移植到node.js代码可能是一种浪费和痛苦的体验。
另一方面,Node擅长网络和服务长时间运行的连接,例如WebSockets(socket.io,SockJS等)。因此,使用聊天服务器也是有意义的。
我建议你同时使用两者,因为它们中的每一个都解决了它擅长的特定问题。您可以使用某种消息队列轻松连接它们。
您可以尝试使用节点Web服务器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