Я использую Flask Socketio для создания динамической веб-страницы, которая возвращает результаты некоторых исследований, выполняемых бэкэндом Python.
Поскольку я новичок в веб-разработке на Python, я не уверен, как создать REST-сервис для одновременной обработки нескольких сессий. Например, в стеке MEAN это обрабатывается изначально.
объяснить;
Если у меня есть два или более клиентов - Джон и Эшли - я зайду на www.sampleflaskwebapp.com, где они получат поле поиска.
Если Джон отправляет запрос - он возвращает результаты в том же веб-приложении на одной странице.
Тем не менее, Эшли также увидит, что одностраничное веб-приложение обновляется с теми же результатами, что и Джон. И наоборот, конечно.
Чего мне не хватает, чтобы они не видели сеансы друг друга?
В настоящее время у меня есть базовое приложение на основе Flask SocketIO с одностраничным HTML-шаблоном веб-приложения для передачи результатов.
Runserver.py:
from webapp import create_app, socketio
app = create_app(debug=True)
if __name__ == '__main__':
socketio.run(app, host='0.0.0.0', port=8080)
views.py
from flask import Flask, render_template, url_for, copy_current_request_context, request
from flask_socketio import SocketIO, emit
from . import main
from time import sleep
from threading import Thread, Event
import os
from datetime import datetime
from . import settings
from .. import socketio
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
settings.init()
@main.route('/')
def index():
return render_template('index.html')
@socketio.on('connect', namespace='/test')
def test_connect():
global thread
print('Client connected')
@socketio.on('disconnect', namespace='/test')
def test_disconnect():
print('Client disconnected')
@socketio.on('search', namespace='/test')
def search(message):
try:
socketio.emit('searchstart','', namespace='/test')
socketio.emit('setoriginal', message['data']+'.png', namespace='/test')
except Exception as e:
print(e)