def on_close(self): if self.user_id: if self.user_id in self.users: try: self.users[self.user_id].remove(self) except KeyError: pass if not self.users[self.user_id]: User.offline(self.user_id) else: User.offline(self.user_id) try: self.onlines.remove(self) self.send_online() except KeyError: pass