【问题标题】:Node.JS: Converting tcp to stdin/stdoutNode.JS:将 tcp 转换为标准输入/标准输出
【发布时间】:2011-07-25 17:05:09
【问题描述】:

Node.JS 的实时更新代码能力和自动隔离异常的能力似乎有限。这两者在 Java 中实际上都是默认的。

实时更新的一种非常有效的方法是拥有一个侦听器进程,该进程简单地回显与子进程之间的通信。然后进行更新,监听器启动一个新的孩子(它会自动读取更新的代码),然后开始向新的孩子发送请求,当所有请求都完成后结束旧的孩子。

  • 是否已有系统通过 stdout/stdin 提供此 http 功能。
  • 是否有系统通过 stdout/stdin 提供 TCP 服务器或 UDP 服务器功能。

我的意思是,提供一个类似于 httpnet 模块的模块,但它使用标准输出/标准输入作为底层 I/O。

类似于This CGI module

某些应用程序只需将require('http') 更改为require('cgi')

我打算做类似的事情。我希望重新使用已经存在的代码,也希望轻松地将小型或单一用途的网络服务器转换为运行许多网络应用程序的侦听器层。正确进行清理很重要。结束或错误的连接应该被释放,结束/错误事件/命令应该以两种方式正确回显。

(我认为一种常见的方法是让孩子监听端口,而父母与这些端口进行通信,但我认为标准输出/标准输入解决方案会更有效)

【问题讨论】:

    标签: networking node.js process stdin isolation


    【解决方案1】:

    使用nginx (HttpUpstreamModule) 或HAProxy。在这两种情况下,您都需要在前面运行它们并将后端标记为已关闭,然后在需要进行实时升级时将其重新启动。

    【讨论】:

    • 我会考虑它,但我不确定它是否适合我们的结构。它当然需要支持多个后端,每个后端都可以控制特定的域/路径。
    【解决方案2】:

    我不确定这是否是您正在寻找的内容(实际上,我不确定我是否理解您的问题),但 Remy Sharp 编写了一个非常有用的节点模块,名为 nodemon。它承诺“监视您的 node.js 应用程序中的任何更改并自动重新启动服务器。”这可能有助于解决实时更新代码的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-14
      • 2013-09-18
      • 2013-10-12
      • 2019-01-31
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多