Crossbar Component with Actor and Worker Echoing Messages

  • Share this:

Code introduction


This code creates a Crossbar component that includes an Actor and a Worker. It receives messages and topics, prints the message, and echoes the message back.


Technology Stack : Crossbarlib

Code Type : Crossbar Component

Code Difficulty : Intermediate


                
                    
def random_crossbar_function(message, topic):
    from crossbarlib.component import Component
    from crossbarlib.component.actor import Actor
    from crossbarlib.component.worker import Worker
    import random

    def generate_random_actor():
        actors = ["actor1", "actor2", "actor3", "actor4", "actor5"]
        return random.choice(actors)

    class MyComponent(Component):
        def __init__(self):
            super().__init__()
            self.actor_name = generate_random_actor()
            self.actor = Actor(self, self.actor_name)
            self.worker = Worker(self, self.actor_name)

        def on_message(self, message, topic):
            print(f"Received message: {message} on topic: {topic}")
            self.worker.send(self.actor_name, {"type": "response", "data": message})

    component = MyComponent()
    component.on_message(message, topic)                
              
Tags: