43 votes

socket.io.js introuvable

Pour une raison quelconque, mon serveur de nœud ne peut pas desservir la route /socket.io/socket.io.js , je reçois toujours une erreur 404.
J'ai essayé de compiler différentes versions de nœuds (la version actuelle est 0.6.13 qui fonctionne également sur le serveur, où cela fonctionne réellement ).
Sur app.js, j'obtiens info: socket.io started et aucune erreur lorsque j'essaie d'appeler le socket.io.js.

Je l'essaie à partir de localhost et du port 8000 et j'utilise le framework express

C'est le code de 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
 

94voto

nguyenkha Points 1097

Veuillez vérifier votre version Express. Express a récemment été mis à jour en 3.0alpha, API qui a été modifiée. Si 3.0 vous pouvez changer votre code en quelque chose qui aime ça:

 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);
 

Même problème avec connect: https://github.com/senchalabs/connect/issues/500#issuecomment-4620773

3voto

Aviram Netanel Points 425

Avec l'aide de l'Express 3 framework web: (à partir de socket.io)

> Express 3 exige que vous instanciez un http.Server joindre socket.io pour la première:

sens - (1) vous devez créer une instance de serveur:

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

(2) en couple avec le support.io:

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

et SEULEMENT ALORS - (3) que le serveur écoute:

http.listen(8080);

assurez-vous de garder cet ordre!

1voto

Roeland Points 674

Après avoir installé le noeud 0.8.1, j'ai eu le même problème. Je viens de supprimer la carte node_modules dans mon dossier de projet et de réinstaller express / socket.io. Après cela, cela a fonctionné à nouveau avec le code de votre question.

0voto

Jacek Wysocki Points 388

Peut-être que cela pourrait vous aider, sur mon Ubuntu 11.10, je n'ai pas correctement défini la variable NODE_PATH Si vous êtes sur linux / mac, essayez d'ajouter la ligne ci-dessous à votre fichier .bashrc / .zshrc.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X