Python Language
События, отправленные сервером Python
Поиск…
Вступление
Server Sent Events (SSE) - однонаправленное соединение между сервером и клиентом (обычно это веб-браузер), который позволяет серверу «нажимать» информацию клиенту. Это очень похоже на websockets и длительный опрос. Основное различие между SSE и websockets заключается в том, что SSE является однонаправленным, только сервер может отправлять информацию клиенту, где, как и в случае с websockets, обе могут отправлять информацию друг другу. SSE обычно считается гораздо более простым в использовании / внедрении, чем в websockets.
Фляжка 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
В этом примере используется асинхронная 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow