def publish(self, topic_name, msg): if (topic_name in self.topics) and self.subscriptions[topic_name]: self.message_queue[self.subscriptions[topic_name]].append(msg) else: raise Exception('Topic or subscription does not exist') def pull(self, sub_name): if self.message_queue.get(sub_name): if len(self.message_queue[sub_name]) == 0: return [] else: return self.message_queue[sub_name].pop(0) else: raise Exception('Subscription does not exist') if __name__ == '__main__': topic = 'topic' subscription = 'sub' mb = Broker() pub = Publisher(broker=mb, topic_name=topic) sub = Subscriber(broker=mb, topic_name=topic, sub_name=subscription) pub.create_topic() print(mb.topics) sub.subscribe() print(mb.subscriptions) print(mb.message_queue) pub.publish('Hi there') message = sub.pull() print(message)
"changed_val": "True" } publisher = Publisher(project_id, topic_name) print("\t\t\tPublish Test\n") print(f"Sending {message} to {subscription_name}\n") try: publisher.publish_message(subscription_name, message, metadata=metadata) print("Message successfully sent!\n") except Exception as e: print("Message was not successfully sent.") print(f"Exception: {e}\n") print("\t\t\tTopic Creation Test\n") print(f"Creating topic named topic-tester\n") topic_name = publisher.get_topic(project_id, 'topic-tester') print(topic_name) response = publisher.create_topic(topic_name) print(f"Response: {response}\n") print("\t\t\tTopic Deletion Test\n") print(f"Deleting topic named topic-tester\n") print(topic_name) publisher.delete_topic(topic_name) print(f"Success!")