mqtt wrapper: add tls handling
Signed-off-by: Thomas Klaehn <thomas.klaehn@u-blox.com>
This commit is contained in:
		@@ -10,7 +10,7 @@ import paho.mqtt.client as mqtt_client
 | 
			
		||||
 | 
			
		||||
class Mqtt(object):
 | 
			
		||||
    ''' Wrapper class for mqtt communication '''
 | 
			
		||||
    def __init__(self, hostname, port=1883, keepalive=60, qos=2, retain=True, subscribe=[]):
 | 
			
		||||
    def __init__(self, hostname, port=1883, ca_certs=None, certfile=None, keyfile=None, keepalive=60, qos=2, retain=True, subscribe=[]):
 | 
			
		||||
        ''' Constructor
 | 
			
		||||
        @param hostname: The hostname of the mqtt broker
 | 
			
		||||
        @param port: The port number used for mqtt transport
 | 
			
		||||
@@ -21,6 +21,9 @@ class Mqtt(object):
 | 
			
		||||
        '''
 | 
			
		||||
        self.hostname = hostname
 | 
			
		||||
        self.port = port
 | 
			
		||||
        self.ca_certs = ca_certs
 | 
			
		||||
        self.certfile = certfile
 | 
			
		||||
        self.keyfile = keyfile
 | 
			
		||||
        self.keepalive = keepalive
 | 
			
		||||
        self.client = mqtt_client.Client()
 | 
			
		||||
        self.client.on_connect = self.__on_connect
 | 
			
		||||
@@ -34,17 +37,20 @@ class Mqtt(object):
 | 
			
		||||
 | 
			
		||||
    def connect(self):
 | 
			
		||||
        ''' Connect to mqtt broker '''
 | 
			
		||||
        ret = False
 | 
			
		||||
        if not self.is_connected:
 | 
			
		||||
            res = self.client.connect(self.hostname, self.port, \
 | 
			
		||||
                                        self.keepalive)
 | 
			
		||||
            if res != mqtt_client.MQTT_ERR_SUCCESS:
 | 
			
		||||
                return False
 | 
			
		||||
            res = self.client.loop_start()
 | 
			
		||||
            if res == mqtt_client.MQTT_ERR_INVAL:
 | 
			
		||||
                return False
 | 
			
		||||
            self.is_connected = True
 | 
			
		||||
            return True
 | 
			
		||||
        return False
 | 
			
		||||
            res = None
 | 
			
		||||
            try:
 | 
			
		||||
                self.client.tls_set(self.ca_certs, self.certfile, self.keyfile)
 | 
			
		||||
                res = self.client.connect(self.hostname, self.port, self.keepalive)
 | 
			
		||||
            	if res == mqtt_client.MQTT_ERR_SUCCESS:
 | 
			
		||||
                    res = self.client.loop_start()
 | 
			
		||||
                    if res != mqtt_client.MQTT_ERR_INVAL:
 | 
			
		||||
                        ret = True
 | 
			
		||||
                        self.is_connected = True
 | 
			
		||||
            except ValueError:
 | 
			
		||||
                pass
 | 
			
		||||
        return ret
 | 
			
		||||
 | 
			
		||||
    def disconnect(self):
 | 
			
		||||
        ''' Disconnect from mqtt broker '''
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
									
									
									
									
								
							@@ -9,5 +9,5 @@ type 'python setup.py install' to install the distribution.
 | 
			
		||||
'''
 | 
			
		||||
from distutils.core import setup
 | 
			
		||||
 | 
			
		||||
setup(name='mqtt', version='1.0.0', author='Thomas Klaehn',
 | 
			
		||||
setup(name='mqtt', version='1.1.0', author='Thomas Klaehn',
 | 
			
		||||
      author_email='tkl@blackfinn.de', packages=['mqtt'])
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user