skip to navigation
skip to content

Not Logged In

juggernaut 0.2

Client library for 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:
  1. 2011 by Armin Ronacher.
license:

BSD, see LICENSE for more details.

 
File Type Py Version Uploaded on Size
juggernaut-0.2.tar.gz (md5) Source 2011-12-06 3KB
  • Downloads (All Versions):
  • 15 downloads in the last day
  • 41 downloads in the last week
  • 310 downloads in the last month