2014-09-26 21 views
0

我在一個文件名爲有此代碼server.jsSocket.IO服務器運行時錯誤/異常

var app = require('express')(); 
var server = require('http').createServer(app); 
var io = require('socket.io')(server); 

io.on('connection', function(){ 
    console.log("a client connected"); 
}); 

server.listen(80); 

當運行在終端(CMD)node server.js,它引發此錯誤:

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: listen EACCES 
    at errnoException (net.js:904:11) 
    at Server._listen2 (net.js:1023:19) 
    at listen (net.js:1064:10) 
    at Server.listen (net.js:1138:5) 
    at Object.<anonymous> (C:\inetpub\wwwroot\socketio\server.js:9:8) 
    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) 

你有什麼想法可以解決這個問題嗎?謝謝!
注意:我已經安裝了socket.ioexpress

回答

1

看來你不允許打開端口80 一個ServerSocket看到錯誤消息

C:\inetpub\wwwroot\socketio\server.js:9:8 

套接字地址小於1024是保留給系統使用這條線。試試這個:

var app = require('express')(); 
 
var server = require('http').createServer(app); 
 
var io = require('socket.io')(server); 
 

 
io.on('connection', function(){ 
 
    console.log("a client connected"); 
 
}); 
 

 
server.listen(3000);

+0

是。我發現,當我試圖將端口更改爲8000. 謝謝你的回答! – 2014-09-26 08:50:39

+0

你可以在這裏找到更多關於端口0-1024限制的信息:http://unix.stackexchange.com/questions/16564/why-are-the-first-1024-ports-restricted-to-the-root-用戶只 – 2014-09-26 09:03:36

0

看起來像端口80,無效或無法接受。我試圖將其更改爲另一個端口(8000),它工作。

server.listen(8000); 

例外消失。我希望我能找到一種在運行時區分有效/無效端口的方法。