Javascript 无法调用方法';在';未定义的at对象的

Javascript 无法调用方法';在';未定义的at对象的,javascript,node.js,socket.io,chat,Javascript,Node.js,Socket.io,Chat,当我尝试在node.js命令提示符下运行node app.js时,我得到一个错误消息 cannot call method 'on' of undefined at object 这是我的密码: var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.li

当我尝试在node.js命令提示符下运行node app.js时,我得到一个错误消息

cannot call method 'on' of undefined at object
这是我的密码:

var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);

    server.listen(3000);

app.get('/', function(req, res) {
res.sendfile(__dirname + '/index.html');
});

io.socket.on('connection', function(socket) {
socket.on('send message', function(data){
    io.socket.emit('new message', data);
});
});
出了什么问题

  • io.socket.on
    应该是
    io.on
  • io.socket.emit
    应该是
    socket.emit
  • 例如:

    io.on('connection', function(socket) {
      socket.on('send message', function(data){
        socket.emit('new message', data);
      );
    });
    

    io.socket
    socket
    ,其中一个或两个未定义,请检查它们。