0

我一直在练习 websockets 和 node.js 服务器的“hello world”示例。根据所有这些示例,您创建一个html文件(客户端)和一个js文件(服务器)。在运行它们之前,您必须在命令行上运行它(我使用 windows)

 node nameOFtheServer.js

所以,我的问题。如果我关闭命令行窗口并再次打开它,客户端不会连接到服务器。我必须在命令行中再次手动运行上述代码,这样服务器才能重新启动。为什么会这样?这正常吗?我该如何解决它,所以我不必在命令行上一遍又一遍地运行相同的命令来启动js文件(服务器)?

谢谢

编辑

好的,新的事实,我刚刚编辑了问题,突出显示了斜体的变化

4

2 回答 2

3

当您关闭终端时,其中运行的所有内容都会被杀死。Linux 和 Windows 系统上都有很多解决方案,其中大多数都创建了某种服务,然后在后台运行。

以下是一些可能的解决方案:

选择最适合您的那个。

StackOverflow 上的相关问题:

于 2013-07-14T08:56:51.227 回答
0

首先感谢 Venemo 的分析。我尝试使用 forever 模块,但效果不佳,如您在此处看到的。

所以我决定将nssm与 node.js一起使用

下载了 nssm 并将其解压缩到C:Program Files\path\to\nodejs. 然后我打开 Window 的命令窗口并输入C:\program files\path\to\nssm-2.16\win32,然后输入nssm.exe. 您应该会看到如何安装或删除服务的“菜单”。现在输入

"C:\Program Files\path\to\nssm.exe" install give-Your-Service-A-Name "C:\path\to\node.exe" \"C:Program Files\nodejs\path\to\yourServerFile.js"

请注意,\"C:Program Files\nodejs\path\to\yourServerFile.js"它不是拼写错误之前,您应该输入它,这很重要,如果您的路径中有空格,有助于 nssm 正确解释。

就是这样,现在按 CTRL+ALT+DEL,打开“服务”选项卡,找到 give-Your-Service-A-Name ,右键单击并选择Start service。要检查,请打开与 yourServerFile.js 通信的客户端文件,它应该可以工作,而无需从命令行启动 yourServerFile.js。

(PS:我在 Windows 7 上使用 nodejs 0.10.12 和 nssm 2.16。上面的说明是本教程和本anser的组合)

于 2013-07-16T15:17:29.147 回答