Flask websocket 向特定客户端发送消息
Flask websocket send message to specific client
我正在使用 Flask websocket。并且 websocket 服务器是 运行 在端口 5000
这是监听 websocket 服务器的三个不同的客户端
根据client Id,我想给不同的client发送不同的消息。
在我的上面,所有 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()
一种解决方案是将客户端的 ID 添加到您的消息中,并使每个客户端仅处理包含其 ID 的消息。
例如,您可以像 "<clientId>:Hello Message"
这样在每条消息前加上一个客户端 ID。 C10
的消息变为 "C10:Hello Message"
。每个客户端都会收到此消息,但只有 C10
会对其执行操作。
我正在使用 Flask websocket。并且 websocket 服务器是 运行 在端口 5000
这是监听 websocket 服务器的三个不同的客户端 根据client Id,我想给不同的client发送不同的消息。
在我的上面,所有 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()
一种解决方案是将客户端的 ID 添加到您的消息中,并使每个客户端仅处理包含其 ID 的消息。
例如,您可以像 "<clientId>:Hello Message"
这样在每条消息前加上一个客户端 ID。 C10
的消息变为 "C10:Hello Message"
。每个客户端都会收到此消息,但只有 C10
会对其执行操作。