У меня есть сокет-приложение, которое я пытаюсь заставить прослушивать порт 443 (https). Если я изменю порт (например, на 8080), у меня не возникнет проблем.
Показанная ошибка
error raised: Error: listen EACCES
Исходный код моего приложения:
var fs = require('fs');
// create the https server and listen on port
var options = {
ca: fs.readFileSync('ca.pem'),
cert: fs.readFileSync('cert.pem'),
key: fs.readFileSync('server.key')
};
var server = require('https').createServer(options);
var portNo = 443;
var app = server.listen(portNo, function() {
console.log((new Date()) + " Server is listening on port " + portNo);
});
// create the socket server on the port
var io = require('socket.io').listen(app);
// This callback function is called every time a socket
// tries to connect to the server
io.sockets.on('connection', function (socket) {
console.log((new Date()) + ' Connection established.');
// When a user send a SDP message
// broadcast to all users in the room
socket.on('message', function (message) {
socket.broadcast.emit('message', message);
});
// When the user hangs up
// broadcast bye signal to all users in the room
socket.on('disconnect', function () {
// close user connection
console.log((new Date()) + " Peer disconnected.");
socket.broadcast.emit('user disconnected');
});
});
Я видел много ответов, касающихся Linux, в которых говорилось, что они должны работать от имени sudo, поэтому я попытался запустить сервер узла от имени администратора, но безрезультатно.
Это работает на коробке Windows Server 2012.
Спасибо.