如何将带有 socketio 的 flask 部署到 heroku 并将其升级到 websockets
How to deploy flask with socketio to heroku and have it upgrade to websockets
本地有效。 Socketio 升级到 websocket 而不是诉诸轮询。
从日志中可以明显看出这一点:
...
FYnWEW0ufWGO7ExdAAAA: Received request to upgrade to websocket
FYnWEW0ufWGO7ExdAAAA: Upgrade to websocket successful
...
部署应用程序后,当我创建 procfile
内容时,它 部分工作 :
web: gunicorn app:app
这里的问题是 socketio 无法升级到 websocket,因此求助于轮询。
我的文件结构是
wsgi.py
app.py
Procfile
requirements.txt
这就是我初始化 socketio 的方式
app = ...
socketio = SocketIO(app,
logger=True,
engineio_logger=True,
cors_allowed_origins="*"
)
if __name__ == "__main__":
socketio.run(app, debug=False, port=5000)
注意我没有设置 async_mode
、
如何将带有 socketio 的 flask 应用程序部署到 Heroku 并将其升级到 websockets?
我认为问题在于我没有使用正确的 procfile 命令在部署中启动应用程序。
有一个包含内容的 procfile
web: gunicorn --worker-class eventlet -w 1 wsgi:app
完成任务。
此外,将测功机设置为“开启”也很重要
本地有效。 Socketio 升级到 websocket 而不是诉诸轮询。
从日志中可以明显看出这一点:
...
FYnWEW0ufWGO7ExdAAAA: Received request to upgrade to websocket
FYnWEW0ufWGO7ExdAAAA: Upgrade to websocket successful
...
部署应用程序后,当我创建 procfile
内容时,它 部分工作 :
web: gunicorn app:app
这里的问题是 socketio 无法升级到 websocket,因此求助于轮询。
我的文件结构是
wsgi.py
app.py
Procfile
requirements.txt
这就是我初始化 socketio 的方式
app = ...
socketio = SocketIO(app,
logger=True,
engineio_logger=True,
cors_allowed_origins="*"
)
if __name__ == "__main__":
socketio.run(app, debug=False, port=5000)
注意我没有设置 async_mode
、
如何将带有 socketio 的 flask 应用程序部署到 Heroku 并将其升级到 websockets?
我认为问题在于我没有使用正确的 procfile 命令在部署中启动应用程序。
有一个包含内容的 procfile
web: gunicorn --worker-class eventlet -w 1 wsgi:app
完成任务。
此外,将测功机设置为“开启”也很重要