gpt4 book ai didi

node.js - OpenShift 上的 WebSockets 不适用于远程客户端

转载 作者:搜寻专家 更新时间:2023-10-31 23:24:51 27 4
gpt4 key购买 nike

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

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

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

我尝试使用其他知名客户端,例如 WebSockets.Org 上的 echo 服务或 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

最佳答案

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

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

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

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

或用于安全的 websockets

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

关于node.js - OpenShift 上的 WebSockets 不适用于远程客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com