socket.io 类型错误 (HTTP) 对象不是函数



我正在从其网站 Socket.IO 学习使用 socket.io。一切顺利,但是在我添加第 3 行后var io=require('socket.io')(http);我在尝试运行服务器时出现错误:

C:Usersuserchat-exampleindex.js:3
var io = require('socket.io')(http);
                             ^
TypeError: object is not a function
    at Object.<anonymous> (C:Usersuserchat-exampleindex.js:3:30)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:929:3

这是 Socket.IO 中的代码

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
  res.sendfile('index.html');
});
io.on('connection', function(socket){
  console.log('a user connected');
});
http.listen(3000, function(){
  console.log('listening on *:3000');
});

怎么了?这是我第一次学习nodejs和 socket.io。因此,如果您能帮助我理解和解决问题,我将不胜感激。谢谢。

如果您安装了过时的 socket.io 版本,则会发生该错误。您需要升级到至少 1.0.0 以与文档兼容。最新版本是 1.2.1 . – 乔纳森·洛诺夫斯基

最新更新