仅使用 flask 将 SSE 发送给特定客户

问题描述 投票:0回答:0

flask-sse 在其 quickstart 部分提供了一些示例代码。但是,该代码向所有订阅的客户端发布事件。要仅向某些客户端发布事件,文档建议使用通道。但是,如果这些事件必须是私有的(例如通知特定用户的新消息已到达)怎么办?你不想做一些事情,比如让客户端传递一个用户 ID,并让服务器在以该用户 ID 命名的频道上推送更新,因为这会带来安全/隐私问题。

如果有的话,用

flask_sse
或简单的
flask
实现这样的功能的正确方法是什么?

例如,用户可以将其

JWT
传递给订阅 API 端点。但是然后呢?

from flask import Flask, request
from flask_jwt_extended import current_user, jwt_required
from flask_sse import sse

app = Flask(__name__)

@app.route("/subscribe")
@jwt_required()
def subscribe():
    ....?


@app.route("/receive-message")
def receive_message():
    # message comes in for a user from outside the system
    # for example this API is triggered by a webhook from a third party service

    form_data = request.json()
    # figure out who the recipient is
    user_uuid = get_destination_user_id(form_data)
    user = db.session.query(User).filter_by(uuid=user_uuid).one()

    # now we want to publish an event, but only for this user...
    ...?

python flask server-sent-events
© www.soinside.com 2019 - 2024. All rights reserved.