OpenShift上的WebSockets不能与远程客户端

时间:2015-06-03 17:50:39

标签: node.js websocket openshift

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

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

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

我尝试使用其他众所周知的客户端,例如WebSockets.Orgjsfiddle上的echo服务,但结果是相同的,连接并突然断开连接。

不知道为什么。 有人能够从远程连接到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

1 个答案:

答案 0 :(得分:1)

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

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

然后您仍然可以使用此网址访问您的应用程序:

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

或用于安全的websockets

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