Node.js 脚本永远运行,但在大约 30 分钟后停止

发布于 2024-12-27 16:54:15 字数 686 浏览 0 评论 0原文

我是一名网络开发人员,对整个“运行自己的 (v)服务器”还不熟悉,所以这可能是一个我还没有弄清楚的简单服务器问题

我的问题是这样的:我'我在我的虚拟服务器上运行一个简单的 Node.js (0.6.6) 脚本,并使用“forever”来守护该脚本。该脚本检查连接套接字,递增变量并将数字发送给用户。如果套接字断开连接,则该变量将减一。

该脚本工作正常,向我显示大约 100-200 个“活动”用户但大约 10-50 分钟后,该脚本停止工作。脚本停止后,虚拟服务器响应非常缓慢(至少我想象一下)- 我的虚拟服务器是否可能太弱了?

这是代码:

var io = require('socket.io').listen(8222);
var count = 0

io.sockets.on('connection', function(socket) {
    count++;
    io.sockets.socket(socket.id).emit('message', {count: count});

    socket.on('disconnect', function () {
        count--;
    });
});

最后一件事:我为我的项目使用托管服务器(从打开套接字的位置),并为 node.js 部分使用来自不同主机的虚拟服务器。

I'm a web developer who is new to the whole "run your own (v)Server" so it might be a simple server problem I haven't figured out yet

My problem is this: I'm running a simple Node.js (0.6.6) script on my vServer and I'm using "forever" to daemonize the script. The script checks for connecting sockets, increments a variable and sends the number to the user. If the sockets disconnects, the variable is decremented by one.

The script works fine, showing me around 100-200 "active" users but after around 10-50 minutes, the script just stops working. After the script stops, the vServer responds very slowly (at least I imagine that) - is it possible that my vServer is just too weak?

Here is the code:

var io = require('socket.io').listen(8222);
var count = 0

io.sockets.on('connection', function(socket) {
    count++;
    io.sockets.socket(socket.id).emit('message', {count: count});

    socket.on('disconnect', function () {
        count--;
    });
});

One last thing: I'm using a managed server for my project (from where the socket is opened) and a vServer from a different hoster for the node.js part.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只是偏爱你 2025-01-03 16:54:15

您可以尝试在不同的窗口中运行 top 并观察服务器负载,看看它是否与服务器停止响应的时间同时发生。

You could try running top in a different window and watch the server load, see if it occurs the same time as when the server stops responding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文