J'utilise Socket.io depuis quelques années comme serveur pour des flux bidirectionnels en temps réels.
Je me croyais suffisamment dans la création des instances socket.io jusqu'à ce que je me retrouve à boucler depuis plusieurs jours pour monter un nouveau serveur sur AWS.
En effet, j'ai procédé à la création d'un nouvel EC2 dédié pour l'hébergement de mon serveur socket.io.
J'ai installé un disto debian, installé toutes les dépendances ainsi qu'apache2 et cerbot pour du TLS. J'ai réservé avec confiance mon IP elastic.
J'ai installé bien entendu nodejs, npm et bien sure : socketio. (début du problème). Je croyais à ce niveau que l'installation de socketio via la commande npm install socketio installerait la dernière version (la dernière version au moment de l'écriture de ce message etait la 4.7.5). C'était ma première erreur.
Mais npm a plutôt installé une ancienne version, la 1.7.x.
Sans me rendre compte de ce fait, j'ai tranquillement continué en créant mon projet avec un npm init suivi de tout le blabla.
Mon fichier app.js étant l'encrage de mon application, je l'ai configuré avec un script nécessaire et le port d'écoute.
Là où mon problème s'est déclaré, c'est quand mon client socketio se connectait en boucle au serveur. Tous les tests de troubleshooting du site support ne fonctionnaient pas.
Après 3 jours à boucler sur le sujet, j'ai enfin compris mes deux plus grosses erreurs :
1) L'installation server socket.io va la commande npm Install socket.io n'était pas ce qu'il fallait. ou du moins, je devait tenir compte de la version ainsi installée pour l'utiliser côté client.
2) deuxième erreur, j'ai instancié le client socketio en me basant sur la prescription donnée par le site socket.io en pointant sur une version 4.7.5
Pour régler donc le problème, il a fallu que le client et le serveur utilisent la même version de socket.io.
Chose que j'ai corrigé en réinstallant précisément la version socketio 4.7.5 sur le serveur avec la commande suivant :
npm install socket.io@4.7.5
Mon problème a ainsi été résolu après plusieurs jours de surchauffe avec des allez-venu sur le certbot, les Install et réinstallation, les manipulation des transports et autre handshakes.
Une pure galère.
Mais comme on dit, tout est bien qui fini bien. Mon serveur est up et délivre tranquillement ses flux.
Commentaires
Enregistrer un commentaire