수색…


소개

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