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的内容

你应该使用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