2014-09-26 80 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); 

例外消失。我希望我能找到一种在运行时区分有效/无效端口的方法。