在flask socketio中处理多个外部源

baubqpgj  于 2021-06-10  发布在  Redis
关注(0)|答案(0)|浏览(343)

我对 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也有上述语法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题