Socket.io io.use失败 – TypeError:io.use不是一个函数

我正在处理一个需要套接字握手会议的项目我试图让这个代码工作,我从https://www.npmjs.com/package/express-socket.io-session

var app = require('express')(), server = require("http").createServer(app), io = require("socket.io")(server), session = require("express-session")({ secret: "my-secret", resave: true, saveUninitialized: true }), sharedsession = require("express-socket.io-session"); // Attach session app.use(session); // Share session with io sockets io.use(sharedsession(session)); io.on("connection", function(socket) { // I've add this one... console.log(socket.handshake.session); // Accept a login event with user's data socket.on("login", function(userdata) { socket.handshake.session.userdata = userdata; }); socket.on("logout", function(userdata) { if (socket.handshake.session.userdata) { delete socket.handshake.session.userdata; } }); }); server.listen(3000); 

我运行它,首先我得到了这个

 var io = require("socket.io")(server); ^ TypeError: require(...) is not a function at Object.<anonymous> (/Users/Jack/Root/Sites/Scopone/provaric/server.js:8:30) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:313:12) at Function.Module.runMain (module.js:467:10) at startup (node.js:136:18) at node.js:963:3 

解决了添加

io = require(“socket.io”)。listen(server);

然后我得到了这个

 io.use(function(socket, next) { ^ TypeError: io.use is not a function at Object.<anonymous> (/Users/Jack/Root/Sites/Scopone/provaric/server.js:15:5) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:313:12) at Function.Module.runMain (module.js:467:10) at startup (node.js:136:18) at node.js:963:3 

任何想法来解决这个问题?

socket.io@0.9.17

我在同样的情况下也遇到同样的问题。 即使你的问题在这里有一段时间,我会张贴我的方法。

整个问题是我用:

 var io = require('socket.io'); 

但应该是:

 var io = require('socket.io')(); 

其他的一切都没有在最后的大括号工作,但显然io.use不。

我没有通过服务器:

 app.io = io; 

在/ bin / www

  app.io.attach(server); 

希望这对某人有用。

更新:我使用Socket 1.5.2。

我已经解决了升级nmp,node.js和socket.io。 但要做到这一点,我不得不发现我的所有依赖都搞砸了:那些错误的我无法升级包。