问题描述
我编写了一个flask-socketio应用程序,该应用程序通过websockets将数据提供给网站。
我的目录结构是这样的:
- main.py
- 网站
- index.html
- main.js
- style.css
我的app.yaml是这样的:
glm::mat4 rotationMatrix = glm::rotate(radians,right);
我在目录中运行了gcloud app deploy,并设法将网站部署到GCP。现在可以在https://codevis.ew.r.appspot.com/
下使用但是,flask-socketio应用程序未运行,我无法通过网站连接到它。
我的main.py部署了flask-socketio应用,如下所示:
runtime: python38
handlers:
- url: /
static_files: website/index.html
upload: website/index.html
- url: /
static_dir: website
entrypoint: python main.py
在我的main.js中,我试图像这样连接到flask-socketio:
app = Flask(__name__)
socketio = SocketIO(app,cors_allowed_origins="*")
[...]
def run_app():
socketio.run(app,debug=True)
if __name__ == "__main__":
run_app()
在本地测试flask-socketio时(使用var socket = io.connect(“ http://127.0.0.1:5000”);),一切都可以正常运行。我只是无法让GCP App Engine真正运行flask-socketio应用程序。我在做什么错了?
解决方法
App Engine标准不支持websocket。您可以在App Engine Flexible上执行此操作,但是无法缩放为0(这意味着需要额外的费用)
对于要扩展到0平台的情况,您可以考虑使用Cloud Run,它将很快可以接受定向websocket。
,我遇到了一个Feature Request来实现此功能。
您可以加星标,以便获得可见性,并在 CC 部分中包含您的电子邮件,以便接收有关此信息的进一步更新。但是,请记住,由于这是一项功能请求,因此目前尚无可用于实施的ETA。