command check - fix subscriber
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
from queue import Queue
|
||||
from dotenv import dotenv_values
|
||||
import paho.mqtt.client as mqtt
|
||||
import json
|
||||
import os
|
||||
print(f"__init__.py eseguito in PID {os.getpid()}")
|
||||
|
||||
config = dotenv_values(".env")
|
||||
|
||||
listClients_queue = Queue()
|
||||
listRoles_queue = Queue()
|
||||
getClient_queue = Queue()
|
||||
changeClient_queue = Queue()
|
||||
|
||||
command_queue_map = {
|
||||
"listClients": listClients_queue,
|
||||
"listRoles": listRoles_queue,
|
||||
"getClient": getClient_queue,
|
||||
"createClient": changeClient_queue,
|
||||
"deleteClient": changeClient_queue,
|
||||
"enableClient": changeClient_queue,
|
||||
"disableClient": changeClient_queue
|
||||
}
|
||||
|
||||
def on_message(client, userdata, msg):
|
||||
msg_json = json.loads(msg.payload.decode("utf-8"))
|
||||
command = msg_json['responses'][0]['command']
|
||||
print(f"Received message: {msg.payload.decode("utf-8")} - Command: {command}")
|
||||
|
||||
if command in command_queue_map:
|
||||
command_queue_map[command].put(msg.payload.decode("utf-8"))
|
||||
|
||||
def on_connect(client, userdata, flags, rc, properties):
|
||||
if rc == 0:
|
||||
print('Connected successfully. Properties:', properties)
|
||||
client.subscribe(config['MQTT_DS_RESP_TOPIC'])
|
||||
else:
|
||||
print('Bad connection. Code:', rc)
|
||||
|
||||
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, protocol=mqtt.MQTTv5)
|
||||
client.on_connect = on_connect
|
||||
client.on_message = on_message
|
||||
client.username_pw_set(config['MQTT_USER'], config['MQTT_PASSWORD'])
|
||||
client.connect(config['MQTT_HOST'], int(config['MQTT_PORT']), int(config['MQTT_KEEPALIVE']))
|
||||
client.loop_start()
|
||||
Reference in New Issue
Block a user