node.js - OpenShift 上的 Socket.io 和 Node

标签 node.js express socket.io openshift

我读到 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/

相关文章:

mysql - Sequelize/Node – 连接到空值

node.js - Expressjs req.params 未定义但 req.req.params 已定义

node.js - 带有 Express.js 虚拟主机的子域上的 Socket.IO

node.js - 有没有办法通过模板引擎向客户端发送异步数据?

python - NodeJS - SocketIO over SSL with websocket transport

node.js - "Segmentation Fault": when using xlsx npm module in node. linode 上的 js 应用程序

node.js - nodeJS 请求 POST 到本地主机 :3000 ECONNREFUSED

node.js - 释放对象的校验和不正确

javascript - 使用 Node.JS 构建的多人 JavaScript 游戏 - 分隔玩家

javascript - 对象匹配的返回值