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

时间:2014-12-28 11:47:56

标签: node.js sockets socket.io

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

C:\Users\user\chat-example\index.js:3
var io = require('socket.io')(http);
                             ^
TypeError: object is not a function
    at Object.<anonymous> (C:\Users\user\chat-example\index.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。如果您能帮助我理解并解决问题,我将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

如果您安装了socket.io的过时版本,则会出现该错误。您需要升级到至少1.0.0才能与文档兼容。最新版本为1.2.1。                      - Jonathan Lonowski