server/backend/mlmAccess.py
2021-08-18 18:48:17 +02:00

48 lines
No EOL
1.6 KiB
Python

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()