Socket IO Flask Server 不能发送数据到特定客户房间,但可以发送到所有客户

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

我正在创建一个从 Flask 应用程序获取数据的程序,并且可以将数据发送到 Flask 应用程序,我正在使用 Socket IO 来执行此操作。

socketio.emit('receive_data', data)

这在发送到这里时最终起作用:

@sio.on('receive_data')   
def handle_receive_data(data):         
    print('Received data:', data)

但是当我添加房间参数时:

socketio.emit('receive_data', data, room='my_room')

突然间,接收数据从未被调用过

这是我的程序的完整代码:

import socketio
sio = socketio.Client()
@sio.on('connect') 
def on_connect():
    print('Connected to server')
    sio.emit('join_room', 'my_room')
@sio.on('receive_data')
def handle_receive_data(data):
    print('Received data:', data)
sio.connect('``http://localhost:5000``')
sio.wait()

这是我的烧瓶应用程序的完整代码:

from flask import Flask, render_template
from flask_socketio import SocketIO, emit, join_room
app = Flask(name)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@socketio.on('connect')
def handle_connect():
print('Client connected')
@app.route('/')
def home():
return 'home'
@app.route('/send')
def send():
data = {'foo': 'bar'}
socketio.emit('receive_data', data, room='my_room')
print('Sent data:', data)return 'sent data'
if name == 'main':
socketio.run(app, host='localhost', port=5000)`

为什么添加房间参数收不到数据?

python flask server socket.io flask-socketio
© www.soinside.com 2019 - 2024. All rights reserved.