Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript heroku:如何在其他js文件上获取envPort_Javascript_Node.js_Heroku_Socket.io - Fatal编程技术网

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

Javascript heroku:如何在其他js文件上获取envPort,javascript,node.js,heroku,socket.io,Javascript,Node.js,Heroku,Socket.io,我正试图让我的节点应用程序在heroku上运行,我偶然发现了一个,我确信是常见的问题,但我无法解决它 我的项目由三部分组成,包括: 运行express和socket.io的服务器文件 express node服务器公用文件夹中的“web app” 一个独立的节点应用程序,在我的公司上运行,链接到arduino板 在我的计算机上,一切运行正常,因为每个人都从同一ip/端口侦听节点服务器。但是在herku中,由于端口是动态的,我无法让其他两个组件知道连接到哪里 我这样定义我的端口: var po

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

我的项目由三部分组成,包括:

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

我这样定义我的端口:

var port = process.env.PORT || 5000;
并通过console.log语句记录服务器上的端口

在检查了我的日志几次之后,然后查看了heroku文档,我意识到我不能在heroku上有一个静态端口

所以我有点迷茫了,我怎么才能得到另外两个组件来获得heroku端口

旁注:如果我不能让它工作,下面是我将尝试实现的解决方案

  • 将web服务器和io服务器分开,这样我就可以监听io服务器本身了,这个解决方案正在运行,但我更希望只运行一个heroku实例
  • 使io服务器侦听express server事件,它应该可以工作。。。但这并不能解决我电脑上部件的问题
  • 跳过一座大桥,解决不了任何问题,但会使问题变得不那么重要

  • 感谢您花时间阅读我的存在主义问题,并提前感谢您帮助将外部应用程序连接到heroku应用程序,您不需要知道端口。由于该应用程序可以通过域名访问,因此您可以简单地连接到该域名(例如
    app\u name.herokuapps.com
    ,或者如果您愿意,可以获取您自己的域名)。

    我不确定是否理解您的问题。所有的东西都应该听同一个端口吗?那么,他们难道不能都听
    process.env.PORT
    ?因为系统的一部分不在heroku上托管,所以这不是一个可能的解决方案(这是一个远程控制arduino板的系统,所以arduinos不会在heroku应用程序中运行:)啊,现在我明白了问题:)但我很困惑,是您计算机上的单机版不知道heroku应用程序的端口吗?不可能听公共域名(app_name.herokuapp.com)吗?我应该试试,是的。。。我相信港口也是需要的。今晚我会检查它,我的adruino现在不在线我想(但我可能错了)甚至不可能从外部访问端口,而且它只被他们的内部路由系统使用。我接受了这个答案,因为这是真的,我确实收到了来自服务器的消息,但是,如果没有正确的端口,我的板似乎无法将其发送到服务器,stranglyHave you enabled long-/xhr polling?刚刚意识到heroku不支持套接字。。。看见