Socket.IO服务器运行时错误/异常

时间:2014-09-26 08:18:35

标签: node.js socket.io

我将此代码放在名为 server.js 的文件中:

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.io express

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

看起来端口80 ,无效或不可接受。我试图将它改为另一个端口(8000)并且它有效。

server.listen(8000);

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