【问题标题】:Nodejs and wamp server confusionNodejs 和 wamp 服务器混淆
【发布时间】:2015-11-03 07:08:29
【问题描述】:

情况

在过去的 2 年里,我一直在使用 php 进行开发并使用 wamp。然后我遇到了一个实现聊天系统的模块,然后是即时通知。所以我去查了一下,发现了这个很棒的“nodejs”,它可以让你实时连接到连接的用户。

nodejs socket.io and php这哥们上传了一个不用节点服务器就可以集成nodejs socket.io和php的方法。 所以我下载了他的项目(github)并在我的电脑上运行它,但它给了 来自 8080 的连接被拒绝错误所以,

我去 nodejs 站点并在我的系统(windows)上安装 nodejs。它自动更新了我的环境变量,我可以去我的命令行运行一个示例项目作为

path(...)node nodeServer.js

然后从共享链接运行项目的索引文件,它开始工作。一切运行顺利。

我的问题

如果没有在我的系统上安装 nodejs,我无法在小示例项目中运行 node 应用程序,那么我应该如何在实时服务器 (apache) 上安装 nodejs 并使用命令行启动 nodejs。

我知道这可能太傻了,但我对 nodejs 真的很陌生,所以我不知道我是否可以在实时 php 服务器上运行 node。如果可能的话,谁能告诉我该怎么做?还是只是理想情况,做不到。

【问题讨论】:

    标签: php node.js socket.io wamp


    【解决方案1】:

    Node.js 不需要与 Apache 一起安装。 Node.js 本身提供了一个监听端口的服务器。您可以使用 Apache 或 Nginx 来使用代理。您也可以在没有这些服务器的情况下运行您的应用程序。

    使用以下代码创建文件 index.js 并运行 node index.js

    var http = require('http');
      http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(1337, '127.0.0.1');
    console.log('Server running at http://127.0.0.1:1337/');
    

    打开你的浏览器并输入这个网址:http://127.0.0.1:1337/你会在那里看到Hello World。在这种情况下,nodejs 正在侦听端口 1337

    【讨论】:

    • 查看 "node index.js" 运行,必须安装 nodejs 并且必须设置环境变量,否则会出现错误 "node is not an internal or external command"
    【解决方案2】:

    如果您使用云或 VPS 或任何允许您完全控制已安装内容的解决方案,您只需在此处安装 node.js 并运行您需要的...

    https://github.com/joyent/node/wiki/installing-node.js-via-package-manager

    一些服务将允许您选择要安装的内容...所以您只需选择 nodejs 并与您的 apache 一起运行它。

    但是,如果您使用的是共享托管解决方案,那么实际托管节点(如果有)的数量有限,您几乎不可能解决这个问题。

    第二次编辑:很抱歉编辑了两次,但在提到的 stackoverflow 帖子中有一个“没有 nodejs 服务器”的东西 - 实际上有一个服务器,并且提到需要 npm 安装某些模块......这不是正确的方法,但是如果您仍然想尝试这个,您需要安装节点(以及 npm 以及它),然后您需要 npm isntall 提到的包,添加帖子中引用的简单服务器文件,运行它并然后有你聊天所需的一切......

    如果您需要帮助,请联系我,但如果这是一个时间紧迫的项目,不如找一些第三方解决方案......然后了解这个。

    【讨论】:

      【解决方案3】:

      TLDR 找到一个可以为您提供管理和支持防火墙请求的托管服务,或带有免费 dns 子域的自托管服务并有一个脚本更新您的 IP,这样您就不必为静态付费.

      我的经历

      您实际上也可以利用节点进行输入/输出流操作。查看 gulp 和 node 以获取更多信息。在 git 项目上使用 bower 和 bluebird 可以通过 node 轻松快速地设置应用程序。

      至于使用带有节点/wamp 设置的 socket.io,我过去实际上已经使用过它。我最初在服务器上安装了 wamp,但我使用 apache 指令将 8080 上的代理请求从客户端脚本反向到 node.js 应用程序。

      不过,我确实必须单独安装节点,所以你可能需要 ramnode 之类的东西(我认为它们也允许托管应用程序,如 iis/mvc 等)。

      用于开发的最简单的托管设置 imo 是自托管 wamp/node 以及来自害怕.dns 的免费子域。

      我相信,否则 ramnode 可以让您完全访问 vm 上的管理功能。因此,只要您在需要 xtra 端口时请求防火墙权限,您就可以在那里安装节点(socket.io 在页面上使用不同端口进行请求,所以我不必担心 COR 废话或任何事情)。

      【讨论】:

      • 此外,我相信整个输入/输出流来自 Ruby 和 Rails,但我必须仔细检查(只阅读了 PickAxe 书籍的一部分,没有使用过 Ruby)。
      猜你喜欢
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多