【问题标题】:Trying to setup socket.io with Express [duplicate]尝试使用 Express 设置 socket.io [重复]
【发布时间】:2017-05-30 02:51:15
【问题描述】:

我正在尝试使用 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)

有谁知道可能出了什么问题?

【问题讨论】:

  • 将您运行的端口从 80 更改为 8080 并重新启动您的应用程序
  • 谢谢,确实是这个问题!

标签: node.js express socket.io


【解决方案1】:

在没有sudo 或管理员权限的系统中,您无法绑定到低于1024 的端口。

这些端口被称为特权端口,here is a link to a wikipedia article with some ports and their associated services

理想情况下,在您进行开发时,为了便于使用,您应该使用通常高于3000 的数字以确保安全。

【讨论】:

    【解决方案2】:

    您似乎没有该端口的权限。尝试将您的端口更改为 3000。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 2015-05-25
      • 2016-12-17
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      相关资源
      最近更新 更多