Mosquitto: Python ir MQTT

Ši dokumentacija yra Pradžia vadovo dalis. Visą vadovą rasite čia: Kaip pradėti naudotis Mosquitto.

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero suteikia visiškai valdomą Mosquitto MQTT cloud aplinką, sukurtą patikimumui ir lankstumui:

  • Neribotas žinučių pralaidumas ir duomenų perdavimas – jūsų darbo procesai niekada nesusidurs su dirbtiniais apribojimais.
  • Neribotas įrenginių autentifikavimas per jūsų išorinį API, todėl įrenginių prijungimas ir prieigos valdymas tampa paprastas.
  • Išplėstinės ACL (prieigos kontrolės sąrašai) – detaliam temų, naudotojų ir veiksmų valdymui.
  • Individualus domeno vardas su integruotu HTTPS – saugiems ir firminiams galiniams taškams (pvz.: https://mqtt.jusu-imone.com).
  • Atnaujinimai be rūpesčių: patobulinimus ar saugumo pataisas galite pritaikyti vienu paspaudimu.
  • Nuoseklus veikimas ir stipri apsauga – kiekviena instancija veikia privačioje, dedikuotoje infrastruktūroje.

Pagreitinkite savo IoT projektus ir sumažinkite operacinę naštą. Vos per kelias minutes galite paleisti saugią, gamybai paruoštą Mosquitto MQTT cloud hosting instanciją.

Norėdami naudoti Mosquitto su Python, rekomenduojama Paho MQTT Python klientų biblioteka. Įdiekite ją naudodami:

pip install paho-mqtt

Žemiau pateiktas Python scenarijaus pavyzdys, kaip prisijungti prie Mosquitto serverio naudojant TLS šifravimą ir autentifikaciją:

import paho.mqtt.client as mqtt
import random
import string
from paho.mqtt.client import CallbackAPIVersion

def on_connect(client, userdata, flags, reason_code, properties=None):
    if reason_code == 0:
        print("Connected successfully")
    else:
        print(f"Connection failed with reason {reason_code}")

def on_message(client, userdata, msg, properties=None):
    print(f"Received message: {msg.payload.decode()} on topic {msg.topic}")

def generate_client_id(length=8):
    characters = string.ascii_letters + string.digits
    return "client_" + ''.join(random.choice(characters) for _ in range(length))

client_id = generate_client_id()
client = mqtt.Client(
    client_id=client_id,
    callback_api_version=CallbackAPIVersion.VERSION2
)

client.on_connect = on_connect
client.on_message = on_message

host = "<XXXXXX>.stackhero-network.com"
port = <PORT_TLS>
client.username_pw_set("<USER>", "<PASSWORD>")
client.tls_set()

try:
    print(f"Connecting to {host} with client ID: {client_id}")
    client.connect(host, port)
    client.loop_start()
    client.subscribe("$SYS/#")

    try:
        while True:
            pass
    except KeyboardInterrupt:
        print("\nDisconnecting...")
        client.loop_stop()
        client.disconnect()

except Exception as e:
    print(f"Error: {e}")

Su šiomis instrukcijomis turėtumėte būti gerai pasiruošę pradėti dirbti su Mosquitto Stackhero platformoje. Linkime malonios MQTT tyrinėjimo patirties!