def unSubscribe(self, connection_id, client_id, topic, sub_topic=None): """Remove a subscription from a topic.""" topic = SubscriptionManager.getTopicKey(topic, sub_topic) key_name = GaeSubscription.getKeyName(connection_id, client_id, topic) subscription = GaeSubscription.get_by_key_name(key_name) db.delete(subscription)
def subscribe(self, connection_id, client_id, topic, sub_topic=None, selector=None): """Add a subscription to a topic.""" topic = SubscriptionManager.getTopicKey(topic, sub_topic) key_name = GaeSubscription.getKeyName(connection_id, client_id, topic) subscription = GaeSubscription(key_name=key_name, connection_id=connection_id, client_id=client_id, topic=topic) subscription.put()
def unSubscribe(self, connection_id, client_id, topic, sub_topic=None): """Remove a subscription from a topic.""" topic = SubscriptionManager.getTopicKey(topic, sub_topic) key_name = GaeSubscription.getKeyName(connection_id, client_id, topic) subscription = GaeSubscription.get_by_key_name(key_name) db.delete(subscription)
def iterSubscribers(self, topic, sub_topic=None): """Iterate through all connection ids subscribed to a topic.""" topic = SubscriptionManager.getTopicKey(topic, sub_topic) connection_ids = {} # Keep track of unique IDs. query = GaeSubscription.all() query.filter('topic = ', topic) for subscription in query: if subscription.connection_id in connection_ids: continue connection_ids[subscription.connection_id] = True yield subscription.connection_id
def subscribe(self, connection_id, client_id, topic, sub_topic=None, selector=None): """Add a subscription to a topic.""" topic = SubscriptionManager.getTopicKey(topic, sub_topic) key_name = GaeSubscription.getKeyName(connection_id, client_id, topic) subscription = GaeSubscription(key_name=key_name, connection_id=connection_id, client_id=client_id, topic=topic) subscription.put()
def iterSubscribers(self, topic, sub_topic=None): """Iterate through all connection ids subscribed to a topic.""" topic = SubscriptionManager.getTopicKey(topic, sub_topic) connection_ids = {} # Keep track of unique IDs. query = GaeSubscription.all() query.filter('topic = ', topic) for subscription in query: if subscription.connection_id in connection_ids: continue connection_ids[subscription.connection_id] = True yield subscription.connection_id