【问题标题】:Start Node.js Server from Website从网站启动 Node.js 服务器
【发布时间】:2014-11-27 06:23:41
【问题描述】:

我想知道是否可以使用 PHP 或 JavaScript 从网站动态启动 Node.js 服务器。我想创建一个网站,用户可以在其中创建一个可以通过应用程序连接的服务器,所以我希望能够单击网站上的一个按钮并让它启动一个服务器(甚至可能选择一个随机的开放端口) .

【问题讨论】:

  • 是的。 (修复了 15 个字符的限制)

标签: node.js


【解决方案1】:

是的,一台网络服务器可以代表该网站的某个用户启动另一台网络服务器。如果两个 Web 服务器在同一个 IP 地址上,那么它们就必须在不同的端口上,因为您只能让一个服务器在给定的 IP 地址上监听给定的端口。

流程是这样的:

  1. 用户 A 访问网站 A 上的网页
  2. 用户 A 按下网页上的按钮让网站 A 启动新服务器
  3. 网页向网站 A 的服务器发送命令(表单提交或 ajax 调用或链接)
  4. 网站 A 上的服务器接收命令并执行所需的任何验证/凭据检查
  5. 网站 A 在本地服务器或它连接到的其他服务器上发出操作系统级命令以启动 Web 服务器 B
  6. 用户 A 现在可以连接到 Web 服务器 B

【讨论】:

  • 您能否更具体地了解发送命令。我会在 Apache Web 服务器上运行一个网站,它应该能够在同一个 Linux 机器上启动无限数量的 Node.js Web 服务器。如果你好奇,我在 DigitalOcean Droplet 上使用 Ubuntu 14.01。
  • @nrubin29 - 有人可能会问,为什么要运行 N 个节点服务器而不是一台为所有用户提供服务的服务器?你建议如何为每个节点服务器分配不同的端口号?每个客户端浏览器如何知道使用哪个端口?
  • 我正在制作一个程序,允许教师使用桌面程序或应用程序创建测验并将其托管给学生。我使用 Java 编写了教师和学生应用程序,但后来我发现了 Node.js,然后对自己说:“嘿,我可以将教师应用程序重写为一个网站,并让它托管桌面应用程序(或网站)使用的测验” - 自我。
  • @nrubin29 - 听起来您应该有一台服务器来提供多个测验,每个测验都有自己的 URL。
  • 我已经研究过使用 PHP 执行命令,但我找不到在后台运行命令并能够获取输入的方法。在 Java 中,我可以创建一个新线程并在收到消息时将消息写入stdio。我能以某种方式用 PHP 做到这一点吗?
猜你喜欢
  • 2020-11-10
  • 2013-12-25
  • 1970-01-01
  • 2018-07-17
  • 2021-06-10
  • 2016-04-10
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多