Sök…


Introduktion

Server Sent Events (SSE) är en enkelriktad anslutning mellan en server och en klient (vanligtvis en webbläsare) som gör att servern kan "driva" information till klienten. Det är ungefär som nätuttag och lång pollning. Den huvudsakliga skillnaden mellan SSE och webbuttag är att SSE är enkelriktad, bara servern kan skicka information till klienten, där båda kan skicka information till varandra, precis som med webbuttag. SSE anses vanligtvis vara mycket enklare att använda / implementera än webbuttag.

Kolv 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

Det här exemplet använder asyncio SSE-biblioteket: 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow