Chyba při připojování Socket.io do express.js

Snažím se spojit socket.io a express.js dohromady:

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

Na řádku:var io = require('socket.io').listen(app); Zobrazuje se mi chyba:

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

Zdá se, že na SO/google není nic o této chybě…

Odpověď

Můžete to udělat bez použití http modul

app.listen vrátí instanci serveru, kterou můžete použít pro socket.io

const express = require('express');
const app = express();
const server = app.listen(port, () => {
    console.log("Listening on port: " + port);
});
const io = require('socket.io')(server);