Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
        "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!")