Pusher websocket client for python, based on deepbrook's fork of Erik Kulyk's PythonPusherClient
Project description
Pysher
pysherplus
is a python module for handling pusher websockets. It is based on @deepbrok's fork of @ekulyk's PythonPusherClient
.
You can check out the deepbrook fork here. Deepbrook's code was in maintenance mode, and I wanted a more actively maintained project with a few bug fixes to use in a project.
New features
- Subscription status of channels is automatically maintained and can be setup before connection.
- Authorization support for known secret, url based (such as Laravel), and even custom websocket authentication.
- Better support for custom URLs using the PusherHost class.
Installation
Install via pip pip install pysherplus
.
This module depends on websocket-client module available from: http://github.com/websocket-client/websocket-client
Example
Example of using this pusher client to consume websockets:
import sys
import time
from pysherplus.pusher import Pusher
# 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)
app_key = "my_pusher_app_key"
pusher = Pusher(app_key)
def my_func(event, data):
print("processing Event:", event)
print("processing Data:", data)
pusher["my_channel"]["my_event"].register(my_func)
pusher.connect()
while True:
# Do other things in the meantime here...
time.sleep(1)
Performance
PysherPlus relies on websocket-client (websocket-client on pyPI, websocket import in code), which by default does utf8 validation in pure python. This is somewhat cpu hungry for lot's of messages (100's of KB/s or more). To optimize this validation consider installing the wsaccel module from pyPI to let websocket-client use C-compiled utf5 validation methods (websocket does this automatically once wsaccel is present and importable).
Thanks
Huge thanks to @deepbrook for forking the original repo and by proxy, thank you to all of the people who they thanked.
Copyright
MTI License - See LICENSE for details.
Changelog
Version 2.0.0
Forked and refactored @deepbrook's code and republished under PysherPlus name.
For previous versions, see the original repo's changelog
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
Built Distribution
Hashes for PysherPlus-2.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8aebeaca27a07b83d672257fa05435e6a49679f84d73aaee5321e2e442c138b0 |
|
MD5 | 941a97daeffe441f4614dd665fb57e56 |
|
BLAKE2b-256 | b8363172e4056fec10f7dadf9d17e64ed054b5d9810de73ea0e1456eef501356 |