Подтвердить что ты не робот

Ошибка подключения Socket.io в express.js

Я пытаюсь подключить socket.io и express.js вместе:

var socket = require('./socket_chat/socket.js');

var express = require('express'),
    app = module.exports.app = express();

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

    app.use(express.static(__dirname + '/app'));

io.sockets.on('connection', socket);

В строке: var io = require('socket.io').listen(app); Я получаю сообщение об ошибке:

Error: You are trying to attach socket.io to an expressrequest handler function. Please pass a http.Server instance.

В SO/google ничего не говорится об этой ошибке...

4b9b3361

Ответ 1

Вы должны использовать модуль http:

var http = require('http');
var express = require('express'),
    app = module.exports.app = express();

var server = http.createServer(app);
var io = require('socket.io').listen(server);  //pass a http.Server instance
server.listen(80);  //listen on port 80

//now you can use app and io

Более подробную информацию вы можете найти в документации: http://socket.io/docs/#using-with-express-3/4