Metadata-Version: 2.0
Name: asyncio-sse
Version: 0.1
Summary: asyncio Server-Sent Events implementation
Home-page: https://github.com/brutasse/asyncio-sse
Author: Bruno Renié
Author-email: bruno@renie.fr
License: BSD
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: aiohttp
Requires-Dist: asyncio

SSE
===

Simple asyncio/aiohttp wrapper for Server-Sent Events.

Usage
-----

Sending events:

```python
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()
```

Validating incoming requests:

```python
class Handler(sse.Handler):
    def validate_sse(self):
        super().validate_sse()
	# use self.request / self.payload
        if not self.request.path.startswith('/live'):
            raise sse.SseException()
```

Sending JSON data:

```python
class Handler(sse.Handler):
    @asyncio.coroutine
    def handle_request(self):
        self.send({'foo': 'bar'})
```

Sending IDs / event names / retry information:

```python
class Handler(sse.Handler):
    @asyncio.coroutine
    def handle_request(self):
        self.send('some data', id=12345, event='something', retry=10000)
```


