Websocket отключается, когда подключен другой клиент - PullRequest
0 голосов
/ 30 января 2020

У меня есть ArduinoClient A, подключенный к моему nodejs websocketserver, если это единственный клиент, который отвечает серверу гладко и никаких ошибок не происходит. Но когда другой сервер ArduinoClient B подключился к серверу, предыдущий клиент отключился. Я проверил свои функции и применил метод asyn c, await, обещание, но все-таки это ошибка, я не очень хорош в сокете вроде newb ie ниже мой код сервера сокетов

s.on('connection', function (ws, req) {
    ws.isAlive = true;
    client_connect++;
    ws.on('message', function (message) {

        s.clients.forEach(function (client) { //broadcast incoming message to all clients (s.clients)1
            if (client.isAlive === false) return client.terminate();
            ws.isAlive = false;
            ws.ping(noop);

            var msg_parse = JSON.parse(message);
            client_data = [];

            // msg_parse.soilM < 150 ? fogger.writeSync(1) : fogger.writeSync(0);
            // msg_parse.lightI < 30 ? lightcontrol.writeSync(1) : lightcontrol.writeSync(0);

            var averageHumidtiy = 0;
            var averageLightIntensity = 0;

            for(x=0; x < client_connect; x++)
            {
                client_data.push({ tempc: msg_parse.tempC, humidity: msg_parse.humid, soilm: msg_parse.soilM, lightInt: msg_parse.lightI });
                averageHumidtiy += msg_parse.humid;
                averageLightIntensity += msg_parse.lightI;
                if(x+1 == client_connect)
                {
                    lightLogControls(averageLightIntensity);
                    foggerLogControl(averageHumidtiy);
                    waterLogControl(msg_parse.waterLog);
                }
            }
            });
    });
    ws.on('close', function () {
        client_connect--;
        console.log(client_connect);
        console.log("lost one client");
    });
    console.log(client_connect);
    console.log("new client connected");
    ws.on('pong', heartbeat); });
...