Socket.io: Socket.io pm2 à l'arrêt ne ferme pas les sockets

Créé le 11 nov. 2016  ·  4Commentaires  ·  Source: socketio/socket.io

Ce problème suit https://github.com/Unitech/pm2/issues/2508
Le problème est que si je redémarre ou recharge le serveur socket.io via pm2, j'ai encore beaucoup de sockets en ligne (pour autant que j'aie compris), donc j'ai des pics de charge cpu et de mémoire.

Également en tant que précurseur de ce problème, quel que soit le mode (fork ou cluster) exécuté par mon serveur, mon nombre de sockets actifs augmente (sans sauts brusques, par exemple : 4000, 3995, 4010, 4005, 4020, mais toujours constamment) avec le temps, qu'est-ce qui a besoin de plus en plus de mémoire et par conséquent j'ai une fuite de mémoire ?

Commentaire le plus utile

Je suis une belle personne qui est un grand jour et nuit

Tous les 4 commentaires

À propos du nombre de connexions, ce qui augmente constamment - ce n'est pas un problème pm2, j'ai refusé nginx, pm2, cluster et n'ai laissé qu'une seule instance que j'ai exécutée sur node.js pur avec la commande "node server.js" sans aucun paramètre. Alors, qui lira ceci à l'avenir, mon problème de nombre de connexions n'est PAS à cause de PM2.

Le problème, ce sont les clients mobiles, ils ignorent les paramètres de connexion/reconnexion socket.io, et bien que le serveur ait été hors ligne pendant 3 jours, ils le pingent toujours, puis le serveur passe en ligne, ils se reconnectent. Donc, si le port était public une fois et qu'il y a encore des clients ouverts avec ce port, vous aurez ma situation.

Je suis une belle personne qui est un grand jour et nuit

@Nerfair quel client socket.io les clients mobiles utilisent-ils ? socket.io-client ? Ou les natifs (Android/iOS) ?

@darrachequesne je ne suis pas sûr d'avoir bien compris mais c'est standard

<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>

et côté serveur c'est

sio = require('socket.io')
Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

jloa picture jloa  ·  4Commentaires

varHarrie picture varHarrie  ·  3Commentaires

renkei picture renkei  ·  4Commentaires

Aweather picture Aweather  ·  4Commentaires

thebinarypenguin picture thebinarypenguin  ·  4Commentaires