首页 > 解决方案 > TCP Socket服务器节点js冻结

问题描述

我有一个用节点 js 编写的 TCP 套接字服务器。服务器正在监听来自大约 150 个 GPS 跟踪器设备的数据,然后将数据实时插入数据库。问题是当设备较少时,我的服务器运行良好但是现在随着 gps 跟踪器设备的增加,我的服务器有时会冻结,这意味着它不会将数据插入我的数据库或执行任何功能。当我从终端检查时,它显示服务器正在运行。这是我正在使用的基本代码。请让我知道是否有更好的方法来处理节点中的多线程处理。

var net = require('net');
const cluster = require('cluster');
var numCPUs = require('os').cpus().length;
    if (cluster.isMaster) {
        // Fork workers.
        for (var i = 0; i < numCPUs; i++) {
            cluster.fork();
        }

        cluster.on('death', function(worker) {
            console.log('worker ' + worker.pid + ' died');
            cluster.fork();
        });
    } else {
        net.createServer(function(socket) {
            console.log('received connection...');

            socket.on("error", function(err) {
                console.log("socket error: ")
                console.log(err.stack);
                socket.destroy();
            });
            socket.on('data', function(data) {


                console.log(data.toString());
    });
    }

标签: node.jsmultithreadingsocketssocket.iofork

解决方案


推荐阅读