【发布时间】:2016-04-06 16:49:31
【问题描述】:
将第一个节点 js 应用程序部署到 openshift 时遇到问题。
我对端口有点困惑。
我在创建服务器时设置了这个:
var port = process.env.OPENSHIFT_NODEJS_PORT || 8080,
server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'
http.createServer(function (request, response) {
return router(request, response);
}).listen(port, server_ip_address, function() {
console.log( "Listening on " + server_ip_address + ", server_port " + port )
})
我已经登录了端口。我收到 8080。但是,如果我想收听 websockets,我还必须手动设置为 8080(在接收时),我相信这会导致我出错,两次监听同一个端口。
阅读日志也证明,该应用程序属于 ws server create 方法。我敢打赌,港口是原因。但是,如何解决?
有什么选项我还是看不到吗?
更新: 改websocket端口为8000,报错好像是一样的:
Error: listen EACCES
at errnoException (net.js:905:11)
at Server._listen2 (net.js:1024:19)
at listen (net.js:1065:10)
at Server.listen (net.js:1139:5)
...
但现在可以在本地工作。
更新 2: 我已经设法切换到一个端口使用。我的错误,现在我将 http 服务器作为参数传递给 websocket 服务器创建方法。仍然在本地工作。 目前的代码:
var port = process.env.OPENSHIFT_NODEJS_PORT || 8080,
server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'
var server = http.createServer(function (request, response) {
return router(request, response);
})
server.listen(port, server_ip_address, function() {
console.log( "Listening on " + server_ip_address + ", server_port " + port )
})
它落在服务器监听线上...
更新3: 我为服务器的事件“监听”添加了 eventlistner,并在本地触发。但根据 openshift 上的日志,它没有。 错误还是一样:
Error: listen EACCES
at errnoException (net.js:905:11)
at Server._listen2 (net.js:1024:19)
at listen (net.js:1065:10)
at Server.listen (net.js:1139:5)
at Server.server.listen (/var/lib/openshift/56fc344f2d5271249e0000fe/app-root/runtime/repo/node_modules/sesh/lib/core.js:56:12)
at Object.<anonymous> (/var/lib/openshift/56fc344f2d5271249e0000fe/app-root/runtime/repo/server.js:18:15)
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)
DEBUG: Program node server.js exited with code 8
DEBUG: Starting child process with 'node server.js'
我没有想法。感谢任何帮助。 谢谢,最好的问候。
【问题讨论】:
标签: javascript node.js websocket openshift