我是亚马逊网络服务的新手,我正在尝试使用ECS和Docker在EC2上托管一个完整的MERN应用程序。在我的项目中,我有单独的前端和后端模块。在ECS中,我创建了2个任务(EC2),前端和后端各1个。在前端,我添加了一个容器,它将端口映射到80 to 80的主机映射。此外,还添加了一些环境变量。对于后端,我添加了2个带有端口映射的容器,以承载3001 to 3001和27017 to 27017的映射。我还添加了链接和主机名。我为前端任务和后端任务分配了512个任务内存( MiB )和512CPU单元,这些值分别是128CPU和128CPU。然后,我创建了两个负载均衡器和两个目标组,前端LB
当您没有在客户端的io.connect()函数中指定端口时,客户端将侦听哪个端口?
例如:
var socket = io.connect('http://example.com/'); // listening to port 80?
我这样问的原因是因为我在heroku上部署了此应用程序的服务器端。前端是一个IOS应用程序。我在前端()使用的objective C socketIO库要求我指定一个端口。但我不确定我应该监听哪个端口,因为这在服务器端不是静态的。
我用javascript编写了客户端程序进行测试,当我没有指定端口时,它就可以工作了。
任何帮助都将不胜感激。
我无法让前端客户端连接到HEROKU上的后端Node JS服务器。我知道heroku使用process.env.PORT来决定您可以通过哪个端口来路由套接字流量,但由于我的客户端不会托管在同一服务器上,因此我将无法访问这个不断变化的环境变量。我想知道是否有任何解决这个问题的方法,可以让我的前端客户端连接到我在Heroku上的套接字,而不需要提前知道端口。
相关节点编码
var net = require('net');
var port = process.env.PORT || 9001
var mySocket;
var serverF = net.createServ