Экспресс 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 почти в каждом ответе на связанный вопрос, что я делаю не так?
я пробовал это: но в результате ошибка с портом 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)