Я использую Socket.io 1.3.6 и express 4.13.1.Socket.IO не работает с Express
Я последовал примеру для экспресс 3/4 на Socket.io сайте: http://socket.io/docs/#using-with-express-3/4
На стороне сервера:
18 /**
19 * Create HTTP server.
20 */
21
22 var server = http.createServer(app);
23 var io = require('socket.io')(server);
24 io.on('connection', function(socket) {
25 console.log(JSON.stringify(socket));
26 });
27
28
29 /**
30 * Listen on provided port, on all network interfaces.
31 */
32
33 server.listen(port);
На стороне клиента:
42 socket = io.connect(ChartServiceFrontConfig.socketHost, ChartServiceFrontConfig.socketPort);
43
44 socket.on('data', function(data) {
45 // render data
46 var chart = charts[data.name];
47 if (chart !== undefined)
48 chart.series = data.series;
49 });
Экспресс просто говорит следующее 404 сообщение:
GET /engine.io/?EIO=3&transport=polling&t=1440667610196-0 404 2.172 ms - 925
GET /engine.io/?EIO=3&transport=polling&t=1440667611046-1 404 2.627 ms - 925
GET /engine.io/?EIO=3&transport=polling&t=1440667612854-2 404 6.672 ms - 925
GET /engine.io/?EIO=3&transport=polling&t=1440667615955-3 404 6.362 ms - 925
GET /engine.io/?EIO=3&transport=polling&t=1440667620537-4 404 2.340 ms - 925
Похоже, что Express получил этот запрос, но socket.io не интерпретирует запросы с http-сервера. Я попытался следующий код не повезло ...:
var io = require('socket.io').listen(server);
Я искал вокруг, но нет ответа работал для меня. Поэтому я застрял здесь. Любые комментарии?
FYI, ваш код здесь вообще не используется. Это общий пример HTTP-сервера. – jfriend00
Ваш клиент использует 'engine.io', но ваш сервер использует' socket.io'? – robertklep
Этот объект приложения является экземпляром Express: var app = express(); @ jfriend00 – xiedidan