Server-sent events support for aiohttp.
Project description
The EventSource interface is used to receive server-sent events. It connects to a server over HTTP and receives events in text/event-stream format without closing the connection. aiohttp_sse provides support for server-sent events for aiohttp.
Example
import asyncio
from aiohttp.web import Application, Response
from aiohttp_sse import EventSourceResponse
@asyncio.coroutine
def hello(request):
resp = EventSourceResponse()
resp.start(request)
for i in range(0, 100):
print('foo')
yield from asyncio.sleep(1, loop=loop)
resp.send('foo {}'.format(i))
resp.stop_streaming()
return resp
@asyncio.coroutine
def index(request):
d = b"""
<html>
<head>
<script type="text/javascript"
src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript">
var evtSource = new EventSource("/hello");
evtSource.onmessage = function(e) {
$('#response').html(e.data);
}
</script>
</head>
<body>
<h1>Response from server:</h1>
<div id="response"></div>
</body>
</html>
"""
return Response(body=d)
@asyncio.coroutine
def init(loop):
app = Application(loop=loop)
app.router.add_route('GET', '/hello', hello)
app.router.add_route('GET', '/index', index)
handler = app.make_handler()
srv = yield from loop.create_server(handler, '127.0.0.1', 8080)
print("Server started at http://127.0.0.1:8080")
return srv, handler
loop = asyncio.get_event_loop()
srv, handler = loop.run_until_complete(init(loop))
try:
loop.run_forever()
except KeyboardInterrupt:
loop.run_until_complete(handler.finish_connections())
EventSource Protocol
Requirements
License
The aiohttp_sse is offered under Apache 2.0 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiohttp-sse-0.0.2.tar.gz
(8.5 kB
view hashes)
Built Distribution
Close
Hashes for aiohttp_sse-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 840be72a9be1aa20694aecd7b20328ec386a3e1a3da170ce4cf288810d372608 |
|
MD5 | 4161d485710df9c378dcf4fca2c145dc |
|
BLAKE2b-256 | 051a22045a5f550230d9308661e9b14699ed03b3cf434956b6474acd050c4fb7 |