我有一个无法解决的问题。
我使用 socket.io 或 WebSockets Node js 库在 openshift 卡带上实现了 Node js WebSockets 服务器。
对于其中任何一个,结果都是相同的。
使用在同一 openshift 平台上运行的 Node js 客户端,一切正常。
当客户端在我的本地电脑上移动时,客户端会连接并突然断开连接,并出现 1011 内部服务器错误。
我尝试使用其他知名客户端,例如 echo 服务WebSockets.org https://www.websocket.org/echo.html or jsfiddle http://jsfiddle.net/EAVvQ/516/但结果都是一样的,连接上然后突然断开。
不知道为什么。
有人能够从远程连接到 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