2016-04-26 2 views
0

Извините, если я незнаю или здесь есть настоящая проблема. Я хостинг сервер HTTP с Node.js и APON запуска сервера я получаю ошибку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) 

Эта ошибка не произошла раньше, и совсем недавно придумал. Я попытался переустановить 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); 
+0

Можете ли вы поделиться полным стеклом? Может быть, что-то изменилось в одном из ваших файлов, что вызвало ошибку? – winhowes

+0

Я думаю, нам нужно увидеть больше соответствующего контекста кода. Возможно, как этот модуль загружается и вызывается? Я подозреваю, что вы передаете неправильный тип объекта в конструктор socket.io. Это должен быть объект сервера, но, вероятно, нет. Пожалуйста, покажите нам этот код. – jfriend00

+0

Socket используется в process.js, я буду вводить код здесь. –

ответ

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); 

И, удалите их тоже, так как вы используете g Экспресс в качестве вашего сервера:

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

var server = http.createServer(handleRequest);