Экспресс 4 + Socket.io = 404

В течение нескольких часов я пытался заставить socket.io работать с Express 4. Я начал следовать этому уроку, который дал мне API для рабочего отдыха.

Чтобы заставить работать socket.io, я использовал команду

npm install socket.io

Это добавило socket.io в мой каталог node_modules. После этого я отредактировал мой app.js, чтобы он содержал следующий код:

//LINE above var app = espress();
var http    =     require('http').Server(app);
var io      =     require("socket.io")(http);
io.on('connection',function(socket){  
    console.log("A user is connected");
});
// my routes etc

В моем (нефритовом) представлении я добавил следующий код:

script(src="https://cdn.socket.io/socket.io-1.2.0.js")
script.
    var socket = io('http://localhost/');

теперь, когда я запускаю npm start, я получаю следующую ошибку в браузере и консоли npm:

http://localhost:3000/socket.io/?EIO=3&transport=polling&t=1427056664743-51 404 (not found)

Насколько я знаю, я не использую экспресс-генератор, как sugested почти в каждом ответе на связанный вопрос, что я делаю не так?

мой полный app.js

я пробовал это: но в результате ошибка с портом 3000 уже используется.

1 ответ

Решение

Решил это благодаря ответу здесь

var app = express();
var http = require( "http" ).createServer( app );
var io = require( "socket.io" )( http );
http.listen(8080, "127.0.0.1");


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

У клиента:

script(src='/javascripts/socket.io-1.2.0.js')
script.
    var socket = io.connect( "http://localhost:8080");

Смена портов сделала свое дело (8080 вместо 3000)

Другие вопросы по тегам