Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mpetazzoni/sseclient

Pure-Python Server Side Events (SSE) client
https://github.com/mpetazzoni/sseclient

library python server-sent-events sse sseclient

Last synced: 5 days ago
JSON representation

Pure-Python Server Side Events (SSE) client

Awesome Lists containing this project

README

        

Server Side Events (SSE) client for Python
==========================================

A Python client for SSE event sources that seamlessly integrates with
``urllib3`` and ``requests``.

Installation
------------

.. code::

$ pip install sseclient-py

Usage
-----

.. code:: python

import json
import pprint
import sseclient

def with_urllib3(url, headers):
"""Get a streaming response for the given event feed using urllib3."""
import urllib3
http = urllib3.PoolManager()
return http.request('GET', url, preload_content=False, headers=headers)

def with_requests(url, headers):
"""Get a streaming response for the given event feed using requests."""
import requests
return requests.get(url, stream=True, headers=headers)

def with_httpx(url, headers):
"""Get a streaming response for the given event feed using httpx."""
import httpx
with httpx.stream('GET', url, headers=headers) as s:
# Note: 'yield from' is Python >= 3.3. Use for/yield instead if you
# are using an earlier version.
yield from s.iter_bytes()

url = 'http://domain.com/events'
headers = {'Accept': 'text/event-stream'}
response = with_urllib3(url, headers) # or with_requests(url, headers)
client = sseclient.SSEClient(response)
for event in client.events():
pprint.pprint(json.loads(event.data))

Resources
=========

- http://www.w3.org/TR/2009/WD-eventsource-20091029/
- https://pypi.python.org/pypi/sseclient-py/