【发布时间】:2015-10-08 15:32:35
【问题描述】:
我读过 OpenShift 在服务器端的 8080 端口上监听。我还读到他们强制 Web 套接字连接到端口 8000 客户端。
我没有读到我需要提及端口 8000 服务器端,因为显然 OpenShifts apache reverseProxy 应该将 8000 路由到 8080(由应用程序决定它是什么类型的连接?)
我已经阅读了很多内容,尝试了所有内容,但我真的无法弄清楚这个问题。
在监听 8080 并与var socket = io(); 客户端连接时,站点在本地主机上运行良好。
在 OpenShift 上,请参阅以下内容:
客户端:8000,服务器:8080
运行并建立 WS 连接,但服务器没有响应。没有.on('connection', ... )。有道理,不听8000。
客户端:8000,服务器:8080,Server2:8000 尝试拥有 2 个单独的服务器并且站点无法构建(等待端口 8080 可用时超时)
客户端:8000,服务器:8000 网站无法建立(同上)
客户端:只需使用io() 连接服务器:8080
网站按预期运行,但回退到 xhr 长轮询
有人知道使用最新的 Socket.io、OpenShift 和 Express 4 的简单教程或示例吗?最糟糕的是,您看到的每个示例都以不同的方式(已弃用,比我所知道的更新?)方式启动他们的服务器。它对看似如此简单(甚至是广告)的东西感到疯狂。
仅供参考:最后一个端口组合,简单地连接 io(); 并在服务器端侦听端口 8080 早期工作得非常完美。 Websockets 在 OpenShift 上是不是喜怒无常?
【问题讨论】:
-
由于您没有显示您的代码,我只能解决您的问题“等待端口 8080 可用时超时”。在 OpenShift 中,这意味着您正在尝试绑定到您无权使用的 IP 地址端口组合。换句话说,如果端口正确,您可能正在尝试绑定到 OpenShift 上不允许的 0.0.0.0 或 127.0.0.1。您只能绑定到 process.env.OPENSHIFT_NODEJS_IP。
标签: node.js express socket.io openshift