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 ?
À 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')
Commentaire le plus utile
Je suis une belle personne qui est un grand jour et nuit