Python Language
Python Server Sentイベント
サーチ…
前書き
Server Sent Events(SSE)は、サーバーとクライアント(通常はWebブラウザー)間の単方向接続で、サーバーがクライアントに情報を「プッシュ」できるようにします。これはウェブソケットやロングポーリングによく似ています。 SSEとWebソケットの主な違いは、SSEは単方向性であり、サーバーだけがクライアントに情報を送信できることです.WSocketの場合と同様に、両方とも互いに情報を送信できます。 SSEは、通常、ウェブソケットよりもはるかに簡単に使用/実装できると考えられています。
フラスコ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
この例では、asyncio 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