Python Language
Python Server - Gesendete Ereignisse
Suche…
Einführung
Server Sent Events (SSE) ist eine unidirektionale Verbindung zwischen einem Server und einem Client (normalerweise ein Webbrowser), über die der Server Informationen an den Client "pushen" kann. Es ist wie Websockets und lange Abfragen. Der Hauptunterschied zwischen SSE und Websockets besteht darin, dass SSE unidirektional ist. Nur der Server kann Informationen an den Client senden, wobei wie bei Websockets beide Informationen an einander senden können. SSE wird in der Regel als wesentlich einfacher zu verwenden / zu implementieren als Websockets.
Flasche 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
In diesem Beispiel wird die asyncio-SSE-Bibliothek verwendet: 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow