heroku:如何在其他js文件上获取envPort

时间:2013-06-17 08:52:08

标签: javascript node.js heroku socket.io

我正在尝试让我的节点应用程序在heroku上运行,我偶然发现了一个问题,我确定常见的问题,但是,我无法解决它。

我的项目是一个由3部分组成的系统,由以下部分组成:

  • 运行express和socket.io
  • 的服务器文件
  • 快递节点服务器的公共文件夹中的“Web应用程序”
  • 一个独立的节点应用程序,在我的comp上运行,链接到arduino板
在我的计算机上运行正常,因为每个人都从同一个IP /端口收听节点服务器。但是在herku中,由于端口是动态的,我无法让其他两个组件知道连接到哪里。

我这样定义我的端口:

var port = process.env.PORT || 5000;

并通过console.log语句记录服务器上的端口。

检查我的日志几次后,然后看了一下heroku doc,我意识到我在heroku上没有静态端口。

所以我很失落,我怎么能得到另外两个组件才能获得heroku端口。

旁注:如果我无法让它工作,我将尝试实施的解决方案

  1. 将Web服务器和io服务器分开以便我可以收听IO服务器本身,这个解决方案正在运行,但我希望只运行一个heroku实例
  2. 让io服务器收听快速服务器事件,它应该可以工作......但这并不能解决我计算机上的部件问题。
  3. 跳过一座大桥,解决没有问题,但会使问题变得不那么重要。
  4. 感谢您花时间阅读我的存在问题,并提前感谢您的帮助

1 个答案:

答案 0 :(得分:2)

要将外部应用程序连接到heroku应用程序,您无需知道该端口。由于可以通过域名访问该应用,因此您可以简单地连接到该域名(例如app_name.herokuapps.com,或者如果您愿意,可以获得自己的域名。)