IL n y a aucune âme charitable pour me repondre?
Bonjour à tous les Geeks. Je viens de tester le framework socket.io en locale en creant un petit forum de chat direct, et il fonctionne très bien. Mais je n'arrive pas à le faire marcher en ligne sur un site web. Le fait est que en locale, j'accede au socket à l'aide d'un serveur virtuel que j'active en commande (node server), à l'adresse localhost:3000, voici mon code:
server.js
Ma page html
Quelqu'un aurait-il une idée de pourquoi il ne fonctionne pas une fois herbergé sur un site web?
9 réponses
Salut,
Tu n'as aucune erreur dans ta console de developpement ? Et dans tes logs NodeJS ?
Salut,
Bon, allez, on passe sur le fait que tu importes 3 bonnes grosses libs alors que tu n'as besoin d'aucune des trois (et dans le header pour les libs JS, en plus). :)
Sinon, comme l'a dit @betaWeb, sans logs, on ne peut pas vraiment t'aider. Des connections s'ouvrent ?
Aussi, formatter ton code correctement t'aidera à voir si c'est un problème de syntaxe et permet de distinguer les blocks plus facilement.
L'erreur qu'on me renvoit en console c'est:http://monsite.com/socket.io/?EIO=3&transport=polling&t=LeL57vY 403 (Forbidden)
J'ai tenté de deplacé le dossier socket.io dans la racine de mon site, ça me renvoit toujours la même erreur
C'est bizarre ; tu utilises quoi comme navigateur ? On dirait que socket.io fallback sur du long-polling.
C'est la même chose dans Mozilla que dans Chrome. Sur Mozilla on me dit: You don't have permission to access /socket.io/aroundon this server.
Tu es sur un serveur mutualisé ? Peut être que les connexions WS sont bloquées par l'hébergeur ? Ou tout simplement que le port 3000 est un port réservé ;)
Après quelques modifications j'obient ce message en console require is not defined, à la ligne 1 de mo fichier server.js:
<script> var http = require('http'); </script>
Je sais d'où vient le problème (peut-etre). Dans mon projet j'ai un dossier node_module qui contient les dependances socket io, mais je ne sais pas comment l'injecter dans mon script pour qu'il soit accessible en ligne. J'ai essayé avec <php require "node_modules" mais en vain. Quelqu'un a-t-il une idée?
Mais, ce server.js, tu l'exécutes bien avec node.js ? Et il n'y a pas de balise <script> dedans, si ?