繁体   English   中英

用于部署在heroku上的python flask Web应用程序。 前端如何知道动态后备服务器端口?

[英]for a python flask web app deployed on heroku. how front end know dynamic backed server port?

问题也可能是: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 config var设置为

Config Vars
PORT: 5050

我以为每次重新部署应用程序时,都会抢占并使用该端口,但事实并非如此。 每次我重新部署时,服务器都会在随机端口上侦听。

有人可以帮忙,谢谢。

您可以使用Web客户端中的location对象来查找您需要了解的有关服务器的所有信息。

var HOST = location.origin.replace(/^http/, 'ws')
var ws =  io.connect(HOST + namespace);

但是,在下面的文档中,它们显示客户端套接字在没有参数的情况下被初始化。 你有尝试过吗?

 var socket = io();

我猜想使用“默认构造函数”可以实现与上述相同的功能:使用位置并更改协议。

他们还说您将启用基于会话的相似性。

这全部来自heroku套接字文档https://devcenter.heroku.com/articles/node-websockets尽管本文引用了基于节点的服务器,但其原理与flask相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM