Socket.io: Socket.io pm2 при выключении не закрывает сокеты

Созданный на 11 нояб. 2016  ·  4Комментарии  ·  Источник: socketio/socket.io

Эта проблема следует за https://github.com/Unitech/pm2/issues/2508.
Проблема в том, что если я перезапускаю или перезагружаю сервер socket.io через pm2, у меня все еще остается много сокетов в сети (насколько я понял), поэтому в результате у меня будет загрузка процессора и скачки памяти.

Также как предвестник этой проблемы, независимо от того, в каком режиме (вилка или кластер) мой сервер работает, количество моих активных сокетов растет (без резких скачков, например: 4000, 3995, 4010, 4005, 4020, но все еще постоянно) со временем, что требует все больше и больше памяти, и в результате у меня утечка памяти?

Самый полезный комментарий

Я красивый человек, который великолепен днем ​​и ночью

Все 4 Комментарий

Насчет количества подключений, которое постоянно растет - это не проблема pm2, я отключил nginx, pm2, cluster и оставил только один экземпляр, который я запускал на чистом node.js с командой «node server.js» без каких-либо параметров. Итак, кто будет это читать в будущем, моя проблема с подсчетом подключений НЕ из-за PM2.

Проблема заключается в том, что мобильные клиенты игнорируют настройки подключения / повторного подключения socket.io, и, несмотря на то, что сервер был отключен в течение 3 дней, они все еще пингируют его, а затем сервер переходит в онлайн, они повторно подключаются. Итак, если порт когда-то был общедоступным, и все еще есть открытые клиенты с этим портом, у вас будет моя ситуация.

Я красивый человек, который великолепен днем ​​и ночью

@Nerfair, какой клиент socket.io используют мобильные клиенты? socket.io-client ? Или родные (Android / iOS)?

@darrachequesne Я не уверен, что правильно понял, но это стандарт

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
    var socket = io('http://localhost');
    socket.on('message', function (data) {
        console.log(data);
    });
</script>

а на стороне сервера это

sio = require('socket.io')
Была ли эта страница полезной?
0 / 5 - 0 рейтинги