socket.io.js non trovato

Per qualche ragione il mio server nodo non può servire la route /socket.io/socket.io.js , ottengo sempre un errore 404.
Ho provato a compilare diverse versioni di nodes ( corrente è 0.6.13 che gira anche sul server, dove funziona effettivamente ).
Da app.js ottengo info: socket.io started e nessun errore durante il tentativo di chiamare il socket.io.js.

Lo provo da localhost e port 8000 e uso il framework express

Questo è il codice da app.js:

 var express = require('express') , app = require('express').createServer() , io = require('socket.io').listen(app, { log: true }); app.listen(8000); app.configure(function() { app.use(express.static(__dirname + '/public')); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); io.sockets.on('connection', function (socket) { // all other stuff here 

Si prega di controllare la versione Express. Express recentemente viene aggiornato a 3.0alpha quale API è stata modificata. Se 3.0 puoi cambiare il tuo codice in qualcosa piace questo:

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

Stesso problema con connect: https://github.com/senchalabs/connect/issues/500#issuecomment-4620773

Utilizzo con il framework Web Express 3 : ( da socket.io )

> Express 3 richiede di http.Server un’istanza di http.Server per colbind socket.io all’inizio:

significato – (1) è necessario creare un’istanza del server:

 var app = express(); var http = require('http').createServer(app); 

(2) accoppialo con il socket.io:

 var io = require('socket.io'); io.listen(http); 

e SOLO THEN – (3) fa in modo che il server ascolti:

 http.listen(8080); 

assicurati di mantenere questo ordine!

Dopo aver installato il nodo 0.8.1 ho avuto lo stesso problema. Ho appena cancellato la mappa node_modules nella mia cartella di progetto e reinstallato express / socket.io. Dopo di ciò ha funzionato di nuovo bene con il codice nella tua domanda.

Forse questo potrebbe aiutarti, sulla mia Ubuntu 11.10 non ho impostato correttamente la variabile NODE_PATH , Se sei su linux / mac prova ad aggiungere la riga sotto al tuo file .bashrc / .zshrc.

 export NODE_PATH=/usr/lib/node_modules:$NODE_PATH 

Installa Socket.io nel tuo repository:

 npm install socket.io --save 

Dopo, config il server:

  var express = require('express') var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); server.listen(app.get('80')); // not 'app.listen' 

E all’interno del tuo archivio HTML/EJS o di un altro che vuoi, aggiungi:

  

Verifica se funziona con Console (Chrome / Mozilla, ecc.).

Nel mio esempio utilizzo Chrome (Ctrl + Maiusc + I):

inserisci la descrizione dell'immagine qui