【问题标题】:Flask websocket send message to specific clientFlask websocket 向特定客户端发送消息
【发布时间】:2020-10-01 19:19:47
【问题描述】:

我正在使用 Flask websocket 。并且 websocket 服务器在 5000 端口运行

这是三个不同的客户端监听 websocket 服务器 根据客户端 ID,我想向不同的客户端发送不同的消息。

在我上面,所有 weebsockets 客户端都会收到所有消息。 请让我有什么办法可以根据客户端ID,我想向不同的客户端发送不同的消息。

ws://127.0.0.1:5000/getMessage?clientId=C10
ws://127.0.0.1:5000/getMessage?clientId=C20
ws://127.0.0.1:5000/getMessage?clientId=C30

from geventwebsocket.exceptions import WebSocketError
from geventwebsocket.handler import WebSocketHandler
import gevent
from flask import Flask
from flask_sockets import Sockets
from gevent import pywsgi, Greenlet
from gevent.event import Event

if request.environ.get('wsgi.websocket'):
    ws = request.environ['wsgi.websocket']
    reqBody = request.args
    event = Event()
    ws_event.append((ws, event, None))

for ws, event, _ in ws_event:
    try:
        ws.send("Hello Message")
    except WebSocketError as e:
        event.set()

【问题讨论】:

    标签: python-3.x sockets flask websocket flask-socketio


    【解决方案1】:

    一种解决方案是将客户端的 ID 添加到您的消息中,并使每个客户端只处理包含其 ID 的消息。

    例如,您可以在每条消息前添加一个客户端 ID,例如 "<clientId>:Hello Message"C10 的消息变为 "C10:Hello Message"。每个客户端都会收到此消息,但只有C10 会对其采取行动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 2016-09-19
      • 2021-12-26
      • 2019-06-14
      • 2018-05-26
      相关资源
      最近更新 更多