In the third version of ExpressJS express.createServer() changed to express() this changes makes difficult to bind socket.io on a same port. Maybe somebody
It's described on the socket.io github page (as @Golo stated in your comment):
var app = express()
, server = require('http').createServer(app)
, io = io.listen(server);
server.listen(80);
This works, I have it running.
Probably what Golo have forgotten is to change the listen from app.listen(80) to server.listen(80). I've struggled with this too until I realised my stupid mistake.