Node.js应用程序监听在Openshift上托pipe的多个端口

我创build了我的第一个Node.js应用程序,它由两个Express服务器组成,每个服务器在不同的端口上侦听。 具有不同端口的两个服务器实例的原因是因为一个服务器用于通用浏览器访问,另一个是embedded式设备连接到的“机器接口”服务器。

在Openshift上部署时,我了解到监听端口必须是process.env.OPENSHIFT_NODEJS_PORT 。 这是没有问题的:我可以重新devise我的应用程序来处理这个问题,只需使用一个服务器实例并使用路由,因为在这两种情况下都使用HTTP。

然而,我很好奇以下几点:如果我select创build一个需要在非HTTP端口上侦听的Node.js应用程序,特别是如果它使用了我自己的一些专有的TCP协议,那么我的select是什么? 大多数公共托pipe平台是专门针对Web应用程序的吗?我不得不寻求专门/专用的机器托pipe来支持任意端口吗? 或者,我做错了吗? 换句话说,部署在任意/非HTTP(S)端口上侦听的Node.js应用程序是否非常规?

这里有一个非常类似的问题,但答案只关注Websocket的主题。

我不认为你可以用标准的NodeJS盒式磁带来做到这一点,但是你可以用不同的端口映射来设置你自己的盒式磁带,以暴露不同的端口到公共代理。

请参阅“磁带盒开发指南”,特别是第7部分。暴露服务/ TCP端点:

https://docs.openshift.org/origin-m4/oo_cartridge_developers_guide.html#endpoints