Ricerca…


introduzione

Server Sent Events (SSE) è una connessione unidirezionale tra un server e un client (di solito un browser Web) che consente al server di "spingere" le informazioni al client. È molto simile alle web socket e ai lunghi sondaggi. La principale differenza tra SSE e websockets è che SSE è unidirezionale, solo il server può inviare informazioni al client, dove come con i websocket, entrambi possono inviare informazioni a vicenda. Solitamente SSE è considerato molto più semplice da usare / implementare rispetto ai websocket.

Flacone 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

Questo esempio utilizza la libreria SSE 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow