===== Flask SSE =====
Technologie Server-Send Event (SSE) umožňuje aplikacím ve Flasku posílat data klientovi ve formě obecně asynchronních událostí. Možnosti lze demonstrovat na následujícími příkladu:
from flask import Flask, Response, render_template
from datetime import datetime
import time
app = Flask(__name__)
# a generator with yield expression
def gen_date_time():
while True:
time.sleep(1)
now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# DO NOT forget the prefix and suffix
yield 'data: %s\n\n' % now
@app.route('/sse_demo')
def sse_demo():
return Response(
gen_date_time(), # gen_date_time() is an Iterable
mimetype='text/event-stream' # mark as a stream response
)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
Server side clock: