Pusher websocket client for python, based on Erik Kulyk's PythonPusherClient
Project description
[![PyPI version](https://badge.fury.io/py/Pysher.svg)](https://badge.fury.io/py/Pysher)[![Build Status](https://travis-ci.org/nlsdfnbch/Pysher.svg?branch=master)](https://travis-ci.org/nlsdfnbch/Pysher)
Pysher
=============
`pysher` is a python module for handling pusher websockets. It is based on @ekulyk's `PythonPusherClient`. This fork is meant as
a continuation of the project and is actively maintained. A key difference is the dropped support for pre-3.5 Python versions.
Installation
------------
Simply run `python setup.py install` - or install via pip `pip install pysher`.
This module depends on websocket-client module available from: <http://github.com/liris/websocket-client>
Example
-------
Example of using this pusher client to consume websockets::
```python
import pysher
# Add a logging handler so we can see the raw communication data
import logging
root = logging.getLogger()
root.setLevel(logging.INFO)
ch = logging.StreamHandler(sys.stdout)
root.addHandler(ch)
pusher = pysher.Pusher(appkey)
def my_func(*args, **kwargs):
print("processing Args:", args)
print("processing Kwargs:", kwargs)
# We can't subscribe until we've connected, so we use a callback handler
# to subscribe when able
def connect_handler(data):
channel = pusher.subscribe('mychannel')
channel.bind('myevent', my_func)
pusher.connection.bind('pusher:connection_established', connect_handler)
pusher.connect()
while True:
# Do other things in the meantime here...
time.sleep(1)
```
Sending pusher events to a channel can be done simply using the pusher client supplied by pusher. You can get it here: <https://github.com/pusher/pusher-http-python>
import pusher
pusher.app_id = app_id
pusher.key = appkey
p = pusher.Pusher()
p['mychannel'].trigger('myevent', 'mydata')
Thanks
------
A big thanks to @ekulyk for developing the [PythonPusherClient](https://github.com/ekulyk/PythonPusherClient) library.
Copyright
---------
MTI License - See LICENSE for details.
Changelog
---------
## Version 0.5.0
### Added
- #14 Added support for cluster configuration, thanks t o @[Yvictor](https://github.com/Yvictor)
## Version 0.4.2
### Fixed:
- #11 Global Logger settings no longer overridden in Connection logger
## Version 0.4.0
### Added:
- #8 Add support for WebSocket over HTTP proxy, thanks to @[1tgr](https://github.com/1tgr)
## Version 0.3.0
### Added:
- #7 Auto-resubscribe to channels after reconnecting, thanks to @[pinealan](https://github.com/pinealan)
### Fixed:
- #4, #5 Updated references to the library name, thanks to @[deanmaniatis](https://github.com/deanmaniatis)
## Version 0.2.0
### Added:
- #2 Allow for token generated by auth endpoint, thanks to @[wardcraigj](https://github.com/wardcraigj)
- #3 Allow instantiation with custom host, thanks to @[wardcraigj](https://github.com/wardcraigj)
Pysher
=============
`pysher` is a python module for handling pusher websockets. It is based on @ekulyk's `PythonPusherClient`. This fork is meant as
a continuation of the project and is actively maintained. A key difference is the dropped support for pre-3.5 Python versions.
Installation
------------
Simply run `python setup.py install` - or install via pip `pip install pysher`.
This module depends on websocket-client module available from: <http://github.com/liris/websocket-client>
Example
-------
Example of using this pusher client to consume websockets::
```python
import pysher
# Add a logging handler so we can see the raw communication data
import logging
root = logging.getLogger()
root.setLevel(logging.INFO)
ch = logging.StreamHandler(sys.stdout)
root.addHandler(ch)
pusher = pysher.Pusher(appkey)
def my_func(*args, **kwargs):
print("processing Args:", args)
print("processing Kwargs:", kwargs)
# We can't subscribe until we've connected, so we use a callback handler
# to subscribe when able
def connect_handler(data):
channel = pusher.subscribe('mychannel')
channel.bind('myevent', my_func)
pusher.connection.bind('pusher:connection_established', connect_handler)
pusher.connect()
while True:
# Do other things in the meantime here...
time.sleep(1)
```
Sending pusher events to a channel can be done simply using the pusher client supplied by pusher. You can get it here: <https://github.com/pusher/pusher-http-python>
import pusher
pusher.app_id = app_id
pusher.key = appkey
p = pusher.Pusher()
p['mychannel'].trigger('myevent', 'mydata')
Thanks
------
A big thanks to @ekulyk for developing the [PythonPusherClient](https://github.com/ekulyk/PythonPusherClient) library.
Copyright
---------
MTI License - See LICENSE for details.
Changelog
---------
## Version 0.5.0
### Added
- #14 Added support for cluster configuration, thanks t o @[Yvictor](https://github.com/Yvictor)
## Version 0.4.2
### Fixed:
- #11 Global Logger settings no longer overridden in Connection logger
## Version 0.4.0
### Added:
- #8 Add support for WebSocket over HTTP proxy, thanks to @[1tgr](https://github.com/1tgr)
## Version 0.3.0
### Added:
- #7 Auto-resubscribe to channels after reconnecting, thanks to @[pinealan](https://github.com/pinealan)
### Fixed:
- #4, #5 Updated references to the library name, thanks to @[deanmaniatis](https://github.com/deanmaniatis)
## Version 0.2.0
### Added:
- #2 Allow for token generated by auth endpoint, thanks to @[wardcraigj](https://github.com/wardcraigj)
- #3 Allow instantiation with custom host, thanks to @[wardcraigj](https://github.com/wardcraigj)
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Pysher-0.5.0-py3-none-any.whl
(9.8 kB
view hashes)