[英]Socket.io “Listeners is undefined”
抱歉,如果我不了解,或者這里有實際問題。 我正在使用node.js托管http服務器,並在運行該服務器時出現錯誤
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)
此錯誤以前沒有發生過,只是最近才出現。 我嘗試重新安裝socket.io,並親自編輯該文件。 雖然,無濟於事。 每次都會失敗。 因此,我很樂意就如何解決此問題提出建議。 感謝您的時間...
如何使用
//Vars
var http = require('http');
var express = require("express");
var app = express();
var path = require("path");
var connect = require("connect");
var io = require('socket.io').listen(server);
var socket = io.listen(server);
//Defined port
const PORT = 8080;
//Connection handler
function handleRequest(request, response){
response.end(request.url);
};
var server = http.createServer(handleRequest);
//Log all connections made
//Show .html file
app.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
});
//Port to listen to
app.listen(8080);
在這段代碼中:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.