簡體   English   中英

如何使用 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,因此訴諸輪詢。

這是一個 gif,展示了它在生產中沒有升級到 websockets 而是訴諸垃圾郵件輪詢


我的文件結構是

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這是這個 SO-question 的問題


如何將帶有 socketio 的 flask 應用程序部署到 Heroku 並升級到 websockets?

我認為問題在於我只是沒有使用正確的 procfile 命令來啟動部署中的應用程序。

有一個包含內容的 procfile

web: gunicorn --worker-class eventlet -w 1 wsgi:app

做了工作。


此外,將測功機設置為“開”也很重要在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM