Socket.io - failed: Connection closed before receiving a handshake response
I had the exact same issue because I was defining 'io' twice. Double check where you are defining io in your code and ensure you are not defining the variable io twice.
Example of what I was doing wrong:
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var io = require('socket.io').listen(server.listen(config.port, config.ip, function () {
console.log('Express server listening on %d, in %s mode', config.port,
app.get('env'));
}));
Example of what fixed the issue:
var server = require('http').createServer(app);
var io = require('socket.io')(server);
server.listen(config.port, config.ip, function () {
console.log('Express server listening on %d, in %s mode', config.port,
app.get('env'));
});
Slightly related to what @Lucas Klaassen answered: I had the following:
let express = require('express');
let app = express();
let http = require('http').Server(app);
let io = require('socket.io')(http);
// this is the culprit:
app.listen(port);
Changing last line is what fixed it:
http.listen(port);