socket not found javascript node.js socket.io

javascript - socket io 404 not found



node.js/socket.io/socket.io.js no encontrado (5)

sigo recibiendo el error /socket.io/socket.io.js 404 (No encontrado) Unbeught ReferenceError: io no está definido

mi código es

var express = require(''express''), http = require(''http''); var app = express(); var server = http.createServer(app); var io = require(''socket.io'').listen(server); server.listen(3000);

y

<script src="/socket.io/socket.io.js"></script>

Cuál es el problema ???

cualquier ayuda es bienvenida!


... "Quizás se esté preguntando de dónde viene el archivo /socket.io/socket.io.js, ya que no lo agregamos ni existe en el sistema de archivos. Esto es parte de la magia hecha por io.listen en el servidor. Crea un controlador en el servidor para servir el archivo de script socket.io.js ".

del libro Socket.IO Desarrollo de aplicaciones web en tiempo real, página 56


Cómo encontrar socket.io.js para el lado del cliente

instalar socket.io

npm install socket.io

encontrar el cliente socket.io

find ./ | grep client | grep socket.io.js

resultado:

./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js

copia socket.io.js a tus recursos:

cp ./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js /home/proyects/example/resources/js/

en tu html:

<script type="text/javascript" src="resources/js/socket.io.js"></script>


Copiar socket.io.js a una carpeta pública (algo como resources/js/socket.io.js ) no es la forma correcta de hacerlo.

Si Socket.io Server escucha adecuadamente su servidor HTTP , automáticamente servirá el archivo del cliente a través de http://localhost:<port>/socket.io/socket.io.js . No necesita encontrarlo o copiarlo en la carpeta pública accesible como resources/js/socket.io.js y servirlo manualmente.

Muestra de código
Express 3.x - Express 3 requiere que cree una instancia de http.Server para conectar socket.io a first

var express = require(''express'') , http = require(''http''); //make sure you keep this order var app = express(); var server = http.createServer(app); var io = require(''socket.io'').listen(server); //... server.listen(8000);

Happy Coding :)


Parece que esta pregunta nunca se ha respondido (aunque puede ser demasiado tarde para el OP, la responderé para cualquiera que la encuentre en el futuro y necesite resolver el problema).

En lugar de hacer npm install socket.io tienes que hacer npm install socket.io --save para que el módulo socket.io se instale en tu carpeta de desarrollo web (ejecuta este comando en la ubicación base / donde index.html o index. php es). Esto instala socket.io en el área donde se ejecuta el comando, no globalmente, y, además, corrige / actualiza automáticamente su archivo package.json para que node.js sepa que está allí.

A continuación, cambie su ruta de origen de ''/socket.io/socket.io.js'' a ''http://'' + location.hostname + '':3000/socket.io/socket.io.js'' .


Si bien esto no tiene nada que ver con el OP, si se está ejecutando este problema mientras se mantiene el código de otra persona, es posible que el problema se io.set(''resource'', ''/api/socket.io''); el codificador establece io.set(''resource'', ''/api/socket.io''); en el script de la aplicación, en cuyo caso su código HTML sería <script>type="text/javascript" src="/api/socket.io/socket.io.js"></script> .