Python Language
파이썬 서버 보낸 이벤트
수색…
소개
SSE (Server Sent Events)는 서버와 클라이언트 (일반적으로 웹 브라우저) 간의 단방향 연결로, 서버가 클라이언트에 정보를 "밀어 넣을"수있게합니다. 웹 소켓과 긴 폴링과 매우 비슷합니다. SSE와 웹 소켓의 주된 차이점은 SSE는 단방향이며, 서버 만 클라이언트에게 정보를 보낼 수 있다는 점입니다. 여기서 웹 소켓과 같이 둘 다 정보를 서로에게 보낼 수 있습니다. 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