我编写了一个flask-socketio 应用程序,它通过websockets 向网站提供数据。
我的目录结构是这样的:
我的 app.yaml 是这样的:
runtime: python38
handlers:
- url: /
static_files: website/index.html
upload: website/index.html
- url: /
static_dir: website
entrypoint: python main.py
我在目录中运行 gcloud app deploy 并设法将网站部署到 GCP。现在可以在https://codevis.ew.r.appspot.com/ 下使用
但是,flask-socketio 应用程序没有运行,我无法通过网站连接到它。
我的 main.py 像这样部署了 Flask-socketio 应用程序:
app = Flask(__name__)
socketio = SocketIO(app, cors_allowed_origins="*")
[...]
def run_app():
socketio.run(app, debug=True)
if __name__ == "__main__":
run_app()
在我的 main.js 中,我试图像这样连接到flask-socketio:
var socket = io.connect("https://codevis.ew.r.appspot.com:5000");
在本地测试 flask-socketio 时(使用 var socket = io.connect("http://127.0.0.1:5000");),一切正常。我只是无法让 GCP App Engine 实际运行 flask-socketio 应用程序。我究竟做错了什么?
App 引擎标准不支持 websockets。您可以在App Engine Flexible上执行此操作,但不能缩放到 0(这意味着额外的成本)
对于规模到 0 的平台,您可以考虑 Cloud Run,它很快将能够接受定向 websocket。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句