juggernaut的客户端库。
项目描述
一个简单的Python库,通过redis连接到juggernaut。它还提供了一个非常基本的名单实现,可以用作守护进程来管理在线用户。
基本用法
如何向某个频道的所有订阅者发送消息
from juggernaut import Juggernaut jug = Juggernaut() jug.publish('channel', {'message': 'Hello World!'})
连接事件
juggernaut还允许您订阅事件(新订阅、取消订阅事件),以便您可以对用户上线和离线做出响应
from juggernaut import Juggernaut jug = Juggernaut() for event, data in jug.subscribe_listen(): if event == 'subscribe': ... elif event == 'unsubscribe': ...
由于这是很常见的,因此这个库还实现了一个名单,可以将同一用户的多条连接分组。为此,它使用消息元部分的键。默认情况下,在元对象中为user_id。
示例用法
from juggernaut import Juggernaut, RedisRoster jug = Juggernaut() roster = RedisRoster(jug) roster.run()
默认情况下,它会在redis中保存在线用户数量,这样您就可以使用名单类来查看用户是否在线
>>> roster.get_online_users() [42, 23] >>> roster.is_user_online(42) True >>> roster.is_user_online(99) False
如果您想对用户登录和注销做出响应,则需要重写on_signed_in和on_signed_out方法
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
您可以使用juggernaut向其他登录的用户广播
- 版权:
2011年,Armin Ronacher。
- 许可证:
BSD,有关更多详细信息,请参阅LICENSE。