OpenShift上的WebSockets不能用于远程客户端

我有一个我无法解决的问题。 我使用socket.io或WebSockets节点js库在openshift盒式磁带上实现了节点js WebSockets服务器。 他们中的任何一个的结果是一样的。

使用在同一个openshift平台上运行的节点js客户端,一切正常。

当客户端在我的本地PC上移动客户端连接,并突然断开给1011内部服务器错误。

我尝试使用其他众所周知的客户,如WebSockets.Org或jsfiddle上的回声服务,但结果是相同的,连接和突然断开连接。

不知道为什么。 有人能够从远程连接到openshift WebSockets服务器吗? 该服务器是最小和简单,并在本地工作正常。

这是我用作服务器的代码:

var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1"; var port = 8000; var app = require("express"); var server = require("http").Server(app); var io = require("socket.io")(server); var handleClient = function (socket) { // we've got a client connection socket.sendUTF("hello"); console.log("connect"); }; io.on("connection", handleClient); server.listen(port, ipaddress); 

这是套接字端点:ws://js-camillorh.rhcloud.com:8000

谢谢!

在评论之后更新了代码:

 var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1"; var port = process.env.OPENSHIFT_NODEJS_PORT || 8080; var app = require("express"); var server = require("http").Server(app); var io = require("socket.io")(server); var handleClient = function (socket) { socket.sendUTF("hello"); console.log("connect"); }; io.on("connection", handleClient); console.log("listen: "+ipaddress+" "+port); server.listen(port, ipaddress); 

日志文件是这样的:

 DEBUG: Sending SIGTERM to child... DEBUG: Running node-supervisor with DEBUG: program 'server.js' DEBUG: --watch '/var/lib/openshift/5551a336e0b8cd4ea50000db/app-root/data/.nodewatch' DEBUG: --ignore 'undefined' DEBUG: --extensions 'node|js|coffee' DEBUG: --exec 'node' DEBUG: Starting child process with 'node server.js' DEBUG: Watching directory '/var/lib/openshift/5551a336e0b8cd4ea50000db/app-root/data/.nodewatch' for changes. listen: 127.13.35.129 8080 

你绑定到错误的端口,你需要像这样绑定到8080:

 var port = process.env.OPENSHIFT_NODEJS_PORT || 8080; 

那么你仍然可以通过这个URL访问你的应用程序:

 ws://js-camillorh.rhcloud.com:8000 

或者用于安全的websockets

 wss://js-camillorh.rhcloud.com:8443