我正在使用Flask Socketio创建一个动态网页,该网页返回Python后端正在运行的某些调查结果。
由于我是Python Web开发的新手,所以我不确定如何构造REST服务来同时处理多个会话。例如,在MEAN堆栈中,这是本地处理的。
解释; 如果我有两个或两个以上的客户(约翰和阿什利),请访问www.sampleflaskwebapp.com,他们将在其中使用一些搜索框。 如果John提交了搜索-他会在同一个Page Web应用程序上返回结果。 但是,Ashley还将看到单页Web应用程序已更新,其结果与John得到的结果相同。反之亦然。
让他们看不到彼此的会话我想念什么?
目前,我拥有的是一个基于Flask SocketIO的基本应用程序,该应用程序具有单页Web应用程序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)