我会更深入地研究 node.js。由于 node本身就是一个网络服务器,你必须了解一些关于路由和服务器配置的工作原理。基本上,您的(可能的)Apache 服务会监听端口 80 上的任何内容。Apache 查看 URI,并决定在您的应用程序中运行哪个脚本来启动一个 php 进程,该进程运行您的代码并生成要发送给用户的网页。
所以当你看到:
domain.com/chat
对比
domain.com/index.php?page=Chat
那是 Apache 说的,“嘿,你配置我将 '/chat' 读取为 /index.php?page=Chat,所以我将关闭该脚本”。
Node.js 就像 Apache 和 PHP 合二为一。它处理请求并构建页面。因此,当请求进入时,您将让 node.js 和 Apache 互相踩踏。要让两个应用程序都侦听端口 80,您必须使用类似以下内容的用户:
https://github.com/nodejitsu/node-http-proxy
该节点模块将未处理的服务器请求转发到 Apache,这将允许您拥有混合的 nodejs/apache+php 应用程序。
就模板而言,php 和 javascript 模板不能混合在一起,因为它们是建立在完全不同的语言上的。所以,你几乎不走运。Node 有一个非常丰富的模板引擎列表。其中一些可能与您正在使用的任何语法具有几乎相同的语法,因此移植起来很简单。
https://github.com/joyent/node/wiki/modules#wiki-template
我希望这回答了你的问题。正如评论的那样,我仍然会使用 iFrame,将节点放在不同的端口上,并保持两种架构的清洁和分离。或者,使用聊天服务,而不必费心设置一个完整的单独应用程序。除非你想学习,在这种情况下,发疯。:)