Buscar..


Introducción

Server Sent Events (SSE) es una conexión unidireccional entre un servidor y un cliente (generalmente un navegador web) que permite al servidor "enviar" información al cliente. Se parece mucho a los websockets y las encuestas largas. La principal diferencia entre SSE y websockets es que SSE es unidireccional, solo el servidor puede enviar información al cliente, mientras que al igual que con websockets, ambos pueden enviarse información entre ellos. Generalmente, se considera que SSE es mucho más simple de usar / implementar que websockets.

Frasco 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

Este ejemplo utiliza la biblioteca SSE de asyncio: 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow