juggernaut
Dead simple Python library that connects to a juggernaut via redis. It also provides a very basic roster implementation that can be used as a daemon process to manage online users.
Basic usage
How to send a message to all subscribers of a channel:
from juggernaut import Juggernaut
jug = Juggernaut()
jug.publish('channel', {'message': 'Hello World!'})
Connection Events
Juggernaut also allows you to subscribe to events (new subscription, unsubscribe event) so that you can respond to users going online and offline:
from juggernaut import Juggernaut
jug = Juggernaut()
for event, data in jug.subscribe_listen():
if event == 'subscribe':
...
elif event == 'unsubscribe':
...
Since this is quite common this library also implements a Roster that can group multiple connections to the same user. For grouping this it uses a key in the meta part of the message. The default is user_id in the meta object.
Example usage:
from juggernaut import Juggernaut, RedisRoster jug = Juggernaut() roster = RedisRoster(jug) roster.run()
By default it keeps the number of online users in redis so that you can use the roster class to see if users are online:
>>> roster.get_online_users() [42, 23] >>> roster.is_user_online(42) True >>> roster.is_user_online(99) False
If you want to respond to users signing in and out you need to override the on_signed_in and on_signed_out methods:
class MyRoster(RedisRoster):
def on_signed_in(self, user_id):
print 'User signed in', user_id
def on_signed_out(self, user_id):
print 'User signed out', user_id
You can for instance use juggernaut to broadcast that to other users that signed in.
- copyright:
2011 by Armin Ronacher.
- license:
BSD, see LICENSE for more details.
Metadata
Release files for juggernaut 0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| juggernaut-0.2.tar.gz | 3.7 kB | Without provenance | Details for juggernaut-0.2.tar.gz |
Release files / juggernaut-0.2.tar.gz
| Download URL | juggernaut-0.2.tar.gz |
|---|---|
| Size | 3.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4686cd4701279e01027a01fc9890dd52eb219450c10f961f8aaf8bf1f6bd9684
|
|
BLAKE2b-256 checksum How to use checksums |
793f6cd76096170ce0b6fb520bca2f11f42c06cd39c4db10e38e24526bbffd59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for juggernaut 0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.