簡體   English   中英

Heroku websocket 到 websocket 通訊

[英]Heroku websocket to websocket communication

我正在嘗試使用 Heroku 和 websockets 為我的游戲實現邀請系統。 我已經嘗試過官方的 Heroku 示例,但它不起作用。

這是基本應用程序:

from flask import Flask
from flask-sock import Sock

app = Flask(__name__)
sock = Sock(app)

messages = []

@app.route('/')
def index():
    return "Nothing here..."

@sock.route("/submit")
def inbox(ws):
    while True:
        msg = ws.receive()
        ws.send("Message received.")
        messages.append(msg)

@sock.route("/receive")
def outbox(ws):
    while True:
        for msg in messages:
            ws.send(msg)

即使像這樣簡單的東西也不起作用,從我運行的測試來看,似乎是因為每個 websocket 連接都在獲取它自己的messages實例,並且在 Heroku 示例中似乎與self.clients

這是我的requirements.txt:

click==8.1.3
colorama==0.4.5
Flask==2.2.2
flask-sock==0.5.2
gunicorn==20.1.0
h11==0.13.0
importlib-metadata==4.12.0
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.1
passlib==1.7.4
psycopg2-binary==2.9.3
simple-websocket==0.8.0
Werkzeug==2.2.2
wsproto==1.1.0
zipp==3.8.1
requests==2.26.0
redis==4.3.4
gevent==21.12.0

和我的 Procfile:

web: gunicorn app:app --timeout 200

和我的runtime.txt:

python-3.9.6

我想要的本質上是一種無需不斷查詢數據庫即可將數據從一個 websocket 發送到另一個的方法。 任何幫助是極大的贊賞。

您已導入 flask_sock package 而不是 flask_socket package。 這很令人困惑,因為還有其他包 websockets、socketio 並且它們具有相似的語法。 嘗試從 websockets 制作 backenf,以便在 heroku 上輕松部署它。

暫無
暫無

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

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