问题还可能是: javascript如何获得heroku env变量PORT?
我有一个falsk网络应用程序。 后端服务器运行如下
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
socketio.run(app, host='0.0.0.0', port=port)
我的前端客户端需要来回与我的服务器通信,我需要知道哪个端口后端正在监听。
在前端index.html中,我有以下java脚本
socket = io.connect('0.0.0.0:5050'+ namespace);
我的问题是,我怎么知道后端的动态端口?
我在heroku上部署了我的应用程序,我无法绑定固定服务器。我有 设置我的heroku配置var像
Config Vars
PORT: 5050
我认为每次重新部署我的应用程序时,都会抓住并使用此端口,但它不是那样的。每次重新部署时,服务器都会在随机端口上进行监听。
有人可以提前帮助,谢谢。
答案 0 :(得分:1)
您可以使用Web客户端中的位置对象来查找有关服务器的所有信息。
x
但是,在下面的文档中,它们显示了没有参数的客户端套接字被初始化。你试过这个吗?
var HOST = location.origin.replace(/^http/, 'ws')
var ws = io.connect(HOST + namespace);
我猜测使用"默认构造函数"完成与上述相同的操作:使用位置并更改协议。
他们还说你会启用基于会话的亲和力。
这全部来自heroku套接字文档https://devcenter.heroku.com/articles/node-websockets虽然文章引用了基于节点的服务器,但原理与烧瓶相同。