#!/usr/bin/python # Copyright (c) 2013 Roger Light # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Distribution License v1.0 # which accompanies this distribution. # # The Eclipse Distribution License is available at # http://www.eclipse.org/org/documents/edl-v10.php. # # Contributors: # Roger Light - initial implementation # This example shows how you can use the MQTT client in a class. import sys try: import paho.mqtt.client as mqtt except ImportError: # This part is only required to run the example from within the examples # directory when the module itself is not installed. # # If you have the module installed, just use "import paho.mqtt.client" import os import inspect cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"../src"))) if cmd_subfolder not in sys.path: sys.path.insert(0, cmd_subfolder) import paho.mqtt.client as mqtt class MyMQTTClass(mqtt.Client): def on_connect(self, mqttc, obj, flags, rc): print("rc: "+str(rc)) def on_message(self, mqttc, obj, msg): print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload)) def on_publish(self, mqttc, obj, mid): print("mid: "+str(mid)) def on_subscribe(self, mqttc, obj, mid, granted_qos): print("Subscribed: "+str(mid)+" "+str(granted_qos)) def on_log(self, mqttc, obj, level, string): print(string) def run(self): self.connect("m2m.eclipse.org", 1883, 60) self.subscribe("$SYS/#", 0) rc = 0 while rc == 0: rc = self.loop() return rc # If you want to use a specific client id, use # mqttc = MyMQTTClass("client-id") # but note that the client id must be unique on the broker. Leaving the client # id parameter empty will generate a random id for you. mqttc = MyMQTTClass() rc = mqttc.run() print("rc: "+str(rc))