Socket.io"听众未定义"

时间:2016-04-26 02:38:24

标签: javascript node.js socket.io

对不起,如果我不知道或者这里有实际问题。我正在使用node.js托管一个http服务器,运行服务器的apon我得到了错误

authWithPass()

此错误之前没有发生,最近刚出现。我尝试重新安装socket.io,并亲自编辑该文件。虽然,无济于事。它每次都失败了。所以我很乐意就如何解决这个问题提出建议。谢谢你的时间......

如何使用

    C:\Users\Xander\Desktop\Website>node ./processes.js
C:\Users\Xander\Desktop\Website\node_modules\socket.io\node_modules\engine.io\lib\server.js:
  var listeners = server.listeners('request').slice(0);
                        ^

TypeError: Cannot read property 'listeners' of undefined
    at Server.attach
(C:\Users\Xander\Desktop\Website\node_modules\socket.io\node_modules\engine.io\lib\server.js:423:25)
    at Function.attach (C:\Users\Xander\Desktop\Website\node_modules\socket.io\node_modules\engine.io\lib\engine.io.js:124:10)
    at Server.listen.Server.attach (C:\Users\Xander\Desktop\Website\node_modules\socket.io\lib\index.js:228:21)
    at Object.<anonymous> (C:\Users\Xander\Desktop\Website\processes.js:8:21)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)

1 个答案:

答案 0 :(得分:0)

在你的代码的这一行:

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

server未定义。

你可以改变这个:

app.listen(8080);

到此:

var server = app.listen(8080);
var io = require('socket.io').listen(server);

并且,摆脱代码中过早的这些:

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

并且,除非您使用Express作为服务器,否则请删除它们:

function handleRequest(request, response){  
    response.end(request.url);
};

var server = http.createServer(handleRequest);