Any subscriber implementation needs to able to register to the publisher and receive its id. Furthermore the address of the broker needs to be changed.
Specifically, the on_message method must allow the ID to be received and there must be a discover method to register it.
The discover needs to send a message on the general topic to the publisher.
elif not self.id_received and str(msg_decoded).__contains__("Your client topic is"):
act_payload = eval(msg.payload.decode()).get('topic')
self.topic = "client-"+act_payload
client.subscribe(self.topic)
print(f"subscribed to `{self.topic}`")
self.id_received = True
The on_message handles the ID, which will be sent from the publisher.
elif not self.id_received and str(msg_decoded).__contains__("Your client topic is"):
act_payload = eval(msg.payload.decode()).get('topic')
self.topic = "client-"+act_payload
client.subscribe(self.topic)
print(f"subscribed to `{self.topic}`")
self.id_received = True