我尝试使用Express设置Socket.io,并且我使用了Socket.io文档中的确切代码,这是:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(80);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
我在运行app.js时遇到的错误是:
events.js:141
throw er; // Unhandled 'error' event
^
Error: listen EACCES 0.0.0.0:80
at Object.exports._errnoException (util.js:849:11)
at exports._exceptionWithHostPort (util.js:872:20)
at Server._listen2 (net.js:1218:19)
at listen (net.js:1267:10)
at Server.listen (net.js:1363:5)
at Object.<anonymous> (/Users/leondewit/PhpstormProjects/websocket_test/app.js:5:8)
at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
有谁知道可能出错了什么?
答案 0 :(得分:0)
您似乎没有获得该端口的许可。尝试将您的端口更改为3000。
答案 1 :(得分:0)
在没有1024
或管理员权限的系统中,您无法绑定到低于sudo
的端口。
这些端口称为特权端口here is a link to a wikipedia article with some ports and their associated services
理想情况下,在开发时,为了便于使用,您应使用通常高于3000
的数字来保证安全。