Python SSE Client
pip install sseclient
from sseclient import SSEClient messages = SSEClient('http://mysite.com/sse_stream/') for msg in messages: do_something_useful(msg)
Each message object will have a 'data' attribute, as well as optional 'event', 'id', and 'retry' attributes.
Optional init parameters:
- last_id: If provided, this parameter will be sent to the server to tell it to return only messages more recent than this ID.
- retry: Number of milliseconds to wait after disconnects before attempting to reconnect. The server may change this by including a 'retry' line in a message. Retries are handled automatically by the SSEClient object.
You may also provide any additional keyword arguments supported by the Requests library, such as a 'headers' dict and a (username, password) tuple for 'auth'.
Simply run the tests with:
$ python setup.py test =================== test session starts ==================== platform darwin -- Python 3.4.3 -- py-1.4.30 -- pytest-2.7.2 rootdir: /Users/jaraco/Dropbox/code/public/sseclient, inifile: plugins: backports.unittest-mock collected 11 items test_sseclient.py ........... ================ 11 passed in 0.12 seconds =================
There are a couple TODO items in the code for getting the implementation completely in line with the finer points of the SSE spec.