我读到 OpenShift 在服务器端监听 8080 端口。我还读到他们强制 Web 套接字连接到客户端的端口 8000。
我在任何地方都没有读到需要提到端口 8000 服务器端,因为显然 OpenShifts apache reverseProxy 应该将 8000 路由到 8080(并且由应用程序决定它是什么类型的连接?)
我读了很多书,尝试了所有方法,但我真的无法弄清楚这个问题。
当监听 8080 并与 var socket = io();
客户端连接时,站点在本地主机中运行良好。
在 OpenShift 上,请参阅以下内容:
客户端:8000,服务器:8080
运行并建立 WS 连接,但服务器没有响应。没有 .on('connection', ... )
。有道理,不听8000。
客户端:8000,服务器:8080,服务器2:8000 尝试拥有 2 台独立的服务器,但站点无法构建(等待端口 8080 可用时超时)
客户端:8000,服务器:8000 网站无法构建(与上面相同)
客户端:只需使用io()
连接服务器:8080
网站按预期运行,但回退到 xhr 长轮询
有人知道使用最新 Socket.io、OpenShift 和 Express 4 的简单教程或示例吗?最糟糕的是,您看到的每个示例都以不同的方式(已弃用,比我知道的新?)方式启动服务器。它对看似如此简单的事情(甚至是广告)的疯狂。
仅供引用:最后一个端口组合,仅使用 io();
连接并在服务器端监听端口 8080,早期工作得非常完美。 OpenShift 上的 Websocket 不稳定吗?
最佳答案
正如 martin 建议的那样:使用 OpenShift 的环境变量,位于 https://developers.openshift.com/managing-your-applications/environment-variables.html 。您也可以通过这种方式获取端口。
然而,与 Martin 命名的变量不同,我从“最新版本”盒中默认获得的代码是否包含 env.NODE_IP 和 env.NODE_PORT。如果您使用 0.10 Node 盒,这可能会有所不同。
关于node.js - OpenShift 上的 Socket.io 和 Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31500774/