Sockets Socket.io将端口添加到url
我正在尝试连接到heroku上的socket.io服务器。我在端口8080上用一个简单的express服务器为我的主干客户端提供服务。当我尝试这样做时:Sockets Socket.io将端口添加到url,sockets,express,heroku,socket.io,Sockets,Express,Heroku,Socket.io,我正在尝试连接到heroku上的socket.io服务器。我在端口8080上用一个简单的express服务器为我的主干客户端提供服务。当我尝试这样做时: io.connect('https://test16793.herokuapp.com/'); 我得到: 获取网络::错误连接被拒绝 但是,当我刚刚打开index.html文件时,它会毫无问题地连接到heroku。使用express提供服务时,在heroku链接尝试连接之前,端口号似乎已添加到heroku链接的末尾 有人知道我能做些什么吗?尝
io.connect('https://test16793.herokuapp.com/');
我得到:
获取网络::错误连接被拒绝
但是,当我刚刚打开index.html文件时,它会毫无问题地连接到heroku。使用express提供服务时,在heroku链接尝试连接之前,端口号似乎已添加到heroku链接的末尾
有人知道我能做些什么吗?尝试使用
var-port=process.env.port | 8080代码>用于应用程序端口,而不是8080
当您在端口443(未指定端口时用于https连接的端口)上连接到heroku上的子域时,heroku可能正在使用代理或路由器将传入连接路由到node.js服务器正在侦听的特定端口。在Heroku基础设施中,他们知道服务器运行的实际内部主机以及它运行的实际端口号,因此可以将子域上的默认端口请求映射到实际端口/主机
这样,浏览器就可以在默认端口上直接连接到您的子域,而不必知道节点服务器安装的详细信息,这样Heroku就可以自动管理您的服务器,并可能与其他客户共享硬件。您每个人都在不同的端口上运行,但共享同一台计算机。端口完全由Heroku管理,这是一种方式,它们可以将多个客户放在同一硬件上,而不必在浏览器URL中指定自定义端口(这对于大多数客户来说是不可能的)
因此,Heroku正在为您的子域托管某种代理,该代理正在侦听默认的https端口。因此,您不必在URL中指定端口。在内部,它们将该连接路由到实际服务器上的实际端口
在桌面上运行时,没有这样的代理来为您执行此操作,因此您必须确保客户端和服务器端口号匹配