我对 flask 还很陌生。我正在用flask socketio写一个小应用程序。我有3个不同的json提要。我用pip安装了redis,用apt安装了服务器,服务正在运行。现在,为了这个问题。三个用户中的每一个都可以选择他的feed。示例:用户1可以有feed1和feed2,用户2有feed3,用户3有feed1。我不知道如何将这些用户传送到所需的房间。我能够得到一个来源的回应如下。我一直到这里。任何帮助都将不胜感激。
服务器.py:
import eventlet
eventlet.monkey_patch()
from flask import Flask, render_template, request
from flask_socketio import SocketIO
from flask_socketio import send, emit
from flask_socketio import join_room, leave_room
app = Flask(__name__)
socketio = SocketIO(app, message_queue='redis://')
@socketio.on("connect")
def connect():
print("Connected")
emit('status', {'status': 'Connected'})
@socketio.on('disconnect')
def disconnect():
print('Client disconnected')
@socketio.on_error()
def error_handler(e):
print("Error")
@socketio.on("join")
def on_join(data):
room = data['room']
print("Joined room", room)
join_room(room)
if __name__ == '__main__':
socketio.run(app, host='0.0.0.0')
委托人:
import socketio
sio = socketio.Client()
@sio.on("status")
def status(data):
print(data['status'])
@sio.on('connect')
def connect():
print("I'm connected!")
@sio.event
def connect_error():
print("The connection failed!")
@sio.event
def disconnect():
print("I'm disconnected!")
@sio.on("json_response")
def getJSON(data):
print(data)
sio.connect('http://localhost:5000')
sio.emit("join", {'room': 'chat1'})
外部来源:one.py:
socketio = SocketIO(message_queue='redis://')
## get the data from DB and convert to json
socketio.emit("json_response", {'payload': jsonStr})
使用相同用法的2.py和3:
socketio = SocketIO(message_queue='redis://')
## get the data from DB and convert to json
socketio.emit("json_response2", {'payload': jsonStr})
py也有上述语法。
暂无答案!
目前还没有任何答案,快来回答吧!