Python Language
Événements envoyés par le serveur Python
Recherche…
Introduction
SSE (Server Sent Events) est une connexion unidirectionnelle entre un serveur et un client (généralement un navigateur Web) qui permet au serveur de "transmettre" des informations au client. C'est un peu comme les websockets et les longues interrogations. La principale différence entre SSE et websockets est que SSE est unidirectionnel, seul le serveur peut envoyer des informations au client, comme avec les websockets, les deux peuvent envoyer des informations à chacun. SSE est généralement considéré comme beaucoup plus simple à utiliser / implémenter que les Websockets.
Flacon SSE
@route("/stream")
def stream():
def event_stream():
while True:
if message_to_send:
yield "data:
{}\n\n".format(message_to_send)"
return Response(event_stream(), mimetype="text/event-stream")
Asyncio SSE
Cet exemple utilise la bibliothèque asyncio SSE: https://github.com/brutasse/asyncio-sse
import asyncio
import sse
class Handler(sse.Handler):
@asyncio.coroutine
def handle_request(self):
yield from asyncio.sleep(2)
self.send('foo')
yield from asyncio.sleep(2)
self.send('bar', event='wakeup')
start_server = sse.serve(Handler, 'localhost', 8888)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow