Соединение Flask и socketio

У меня имеется веб приложение для получения и отправки информации с авторизацией flask_login и передачей данных через socketio. нужно, чтобы после перехода пользвателя на вкладку /profile, сервер отправлял и получал данные через socketio. у меня не получается корректно настроить их взаимодействие. Если будет вам будет не сложно, прошу подсказать как желаемое осуществить грамотно.

файл init.py

sio=SocketIO()
def create_app(): 
    app = Flask(__name__)
    sio.init_app(app)
    app.config['SECRET_KEY'] = 'secret-key-goes-here'
    login_manager = LoginManager(app)  
    login_manager.init_app(app)
    @login_manager.user_loader

    def load_user(userid):
        if userid == 'true':
            return user
        else:
            return None
    
    from .auth import auth as auth_blueprint 
    app.register_blueprint(auth_blueprint)
    
    from .main import main as main_blueprint 
    app.register_blueprint(main_blueprint) 

    from .cms import cms as cms_blueprint 
    app.register_blueprint(cms_blueprint) 
    
    return app

cms.py

from .__init__ import sio
cms = Blueprint('cms', __name__,static_folder='static')

@cms.route('/profile')
@login_required
def profile():
    tempJSON ="1"
    jsonIn="1" 

    @sio.event
    def connect(sid, environ):
        print(sid, 'connected')

    @sio.event
    def disconnect(sid):
        print(sid, 'disconnected')

    @sio.event
    def respJSON(sid, data):       
        jsonIn=subprocess.check_output(['/var/www/html/socket/pj/proj/commLobby.py'],
        universal_newlines=True)
        sio.emit('jsonInput', {'res': jsonIn}, to=sid)
            

    @sio.event
    def addUser(data,sid):
        print('************************** Users will be added')
        array=sid['par'].split('|')
        for i in range(len(array)):
            subprocess.Popen(['/var/www/html/socket/deactivated.py', array[i]]) 
            sleep(0.222)
        print("OUT")

    @sio.event
    def delUser(data,sid):
        print('************************** Users will be deleted')
        array=sid['par'].split('|')
        for i in range(len(array)):
            delUser = subprocess.Popen(['/var/www/html/socket/delete.py', array[i]]) 
            sleep(0.222)
   
    return render_template('profile.html')

index.js Запросы организованы в бесконечном '''setInterval'''

const sio =io.connect('http://example/profile')

sio.emit('respJSON',{par: 'give me my JSON'})
sio.on('connect', () => {
    console.log('connected')
})

sio.on('disconnect', () => {
    console.log('disconnected')
})

sio.on('jsonInput', (data) => {
    jsonStr =data['res']
    jsonStr = jsonStr.replace(/'/g, '"')
}) 

Заранее благодарен.


Ответы (0 шт):