def connect(self, room): # 添加active user room = utf8(room) room_key = self.ROOM_USER_PREFIX.format(room) room_ping_key = self.ROOM_USER_PING_PREFIX.format(room) redis_db.hset(room_key, self.uid, self.sid) redis_db.hdel(room_ping_key, self.uid)
def disconnect(self, room): # 添加离线用户到临时表 room = utf8(room) room_key = self.ROOM_USER_PREFIX.format(room) room_ping_key = self.ROOM_USER_PING_PREFIX.format(room) redis_db.hdel(room_key, self.uid) redis_db.hset(room_ping_key, self.uid, DateTime.timestamp() + self.TIMEOUT)
def block(self, room=None): """ 如果不传room,则全局block :param room :return: """ timestamp = DateTime.timestamp() if room is None: redis_db.hset(self.GLOBAL_BLOCK, self.uid, timestamp) else: block_room = self.BLOCK_ROOM_USER.format(room) redis_db.hset(block_room, self.uid, timestamp)
def uid_role_map(cls, uid, role): redis_db.hset(cls.USER_ROLE_PREFIX, uid, role)
def sid_room_map(cls, sid, room): redis_db.hset(cls.SID_ROOM_PREFIX, sid, room)
def sid_uid_map(cls, sid, uid): redis_db.hset(cls.SID_USER_PREFIX, sid, uid)