Socket.io'on'返回undefined

好吧,所以我想学习socket.io,我得到这个错误:

io.socket.on('connection',函数(套接字)TypeError:不能调用undefined的on方法

inheritance人我的代码:

var express = require('express') , app = express.createServer() , routes = require('./routes') , user = require('./routes/user') , path = require('path') , io = require('socket.io').listen(app); // all environments app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); app.listen(3000); app.get('/', routes.index); app.get('/users', user.list); io.socket.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

我知道它会是一件相当明显的事情。

应该是io.sockets.on (“套接字”而不是“套接字”):

 io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

我认为这个代码不再有效。 这是我做的处理socket.io和一个http服务器。

 var app = require('http'), io = require('socket.io'); var handler = function(req, res) { /* your handler function*/ }; var server = app.createServer(handler).listen( 8000 ); var ios = io.listen(server); ios.sockets.on('connection', function(socket){ socket.emit('message', {'message': 'hello world'}); });