javascript - Node.js OpenShift EACCESS 错误

标签 javascript node.js socket.io openshift socket.io-1.0

我无法让应用程序正常启动,不断出现 EACCESS 错误:

Error: listen EACCES

代码如下:

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(server_port);

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);
    });
});

这里没有什么特别之处,OpenShift 的 Node 变量以正确的方式使用。

最佳答案

应该使用server_ip_address。否则,它会在 OpenShift 上使用默认 IP,即 127.0.0.1。更改自:

server.listen(server_port);

到:

server.listen(server_port, server_ip_address);

server.listen(server_port, server_ip_address, function() {
  console.log('%s: Node server started on %s:%d ...',
             new Date(), server_ip_address, server_port);
});

关于javascript - Node.js OpenShift EACCESS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440102/

相关文章:

mysql - 检索与最新消息、node js、socket io、mysql 聊天应用程序的对话

node.js - RESTful 后端和 socket.io 同步

node.js - Socket.io 适用于 localhost 但不适用于 Heroku 服务器

javascript - Three.js - 渲染对象始终位于顶部

javascript - 如何在 http 请求后更新 ng-repeat 列表

node.js - 文件上传卡在生产代码上,但在本地工作 - multer,node.js

javascript - 如何使用 baconJS 接收从 socket.io emit 事件发送的参数?

node.js:使用 es6 导入 socket.io

javascript - Fancybox 不工作,如何让 Overlay 工作

javascript - 使用 JavaScript OnClick 刷新页面