import paho.mqtt.client as mqtt from dbHelper import MaDbHelper class MlmAccess: def __init__(self): self._initDb() self._initMqtt() def _initDb(self): self.db = MaDbHelper() initUsers = [ ("backend", "backend", ["mlmAccess/#"], ["mlmAccess/#"]), ("pair-actor", "pair-actor", ["mlmAccess/pair/request/actor"], ["mlmAccess/pair/response/actor"]) ] for username, password, publishAclPatterns, subscribeAclPatterns in initUsers: if not self.db.addUser(username, password, publishAclPatterns, subscribeAclPatterns): self.db.updateUser(username, password, publishAclPatterns, subscribeAclPatterns) def _initMqtt(self): self.mqtt = client = mqtt.Client(client_id="backend") self.mqtt.username_pw_set("backend", "backend") self.mqtt.on_connect = self._mqttOnConnect self.mqtt.on_message = self._mqttOnMessage print("connecting to broker") print(self.mqtt.connect("localhost", 1883, 60)) self.mqtt.loop_forever() def _mqttOnConnect(self, client, userdata, flags, rc): print("Connected with result code "+str(rc)) if rc != 0: print("") print(client.subscribe("mlmAccess/pair/request/actor")) def _mqttOnMessage(self, client, userdata, message): print("message received " ,str(message.payload.decode("utf-8"))) print("message topic=",message.topic) print("message qos=",message.qos) print("message retain flag=",message.retain) if __name__ == "__main__": MlmAccess()