2017-08-29 1 views
0

J'utilise socket.io sur node.js, avec Expressjs. Lorsque je sers ma page html, j'ai le lien du fichier socket.io.js codé en dur dans un tag de script: <script src="/socket.io/socket.io.js"></script>Socket.io chemin sur le client, comment faire correspondre à mon arbre de répertoire de serveur node.js?

Je ne sais pas comment faire correspondre cela à mon arborescence. Il se présente comme suit:

enter image description here

il se trouve enterré dans le dossier 'node_modules'.

Mon index.js ressemble à ceci:

fichier
const PORT = 3000; 
const express = require("express"); 
const server = express(); 
const http = require("http").Server(server); 
const path = require("path"); 
const io = require("socket.io")(http); 

server.use(express.static(path.join(__dirname + "/public"))); 
server.use(express.static(__dirname + "/public/css")); 
server.use(express.static(__dirname + "/public/js")); 


server.listen(PORT, function() { 
     console.log("server listening on port " + PORT); 
}); 

io.on("connection", function(socket){ 
     console.log("user connected"); 
}); 

Répondre

1

Il vous suffit de changer server.listen-http.listen et il fonctionnera

+0

Génial, qui l'a réparé. – erv

0

socket.io est servi dynamiquement par le serveur de nœud lorsque vous commencez à écouter un port de socket. Il n'est pas présent dans la structure du répertoire.

Dans votre cas, vous devez ajouter le chemin de script http://YOUR_NODE_SERVER_HOST_NAME:SOCKET_PORT/socket.io/socket.io.js.

Dans mon cas, il s'agit de http://localhost:3000/socket.io/socket.io.js.

+0

C'est le chemin, il est servi à obtenir dynamiquement par mon code ci-dessus. Donc, quand je code dur, je reçois la même erreur (parfois, il est dit erreur 404, d'autres fois c'est juste une erreur de croix rouge avec cette url et un lien vers la ligne dans le fichier html où il est (erreurs via google console) – erv