Python program connecting over TLS/SSL to PubSub+ Cloud
Hello everyone,
I want to share a simple Python program that connects to the cloud broker service over TLS and publishes a message.
It took some time for me to understand some concepts and configuration settings, so I hope this can help anyone struggling with TLS connection.
import paho.mqtt.client as mqtt
from time import sleep"""
The callback for when the client receives a CONNACK response from the server.
"""
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))def on_publish(client, userdata, mid):
print(client, userdata, mid)
def on_log(mqttc, obj, level, string):
print(string)"""
creating a client instance
"""
client = mqtt.Client(client_id="", clean_session=True, userdata=None, protocol=mqtt.MQTTv311, transport="tcp")"""
the properties of this method are critical for the connection to work. Incorrect properties create issues
I kept only the essential one.
the ca_certs file.pem downloaded from service -> connect -> Solace Messaging
"""
client.tls_set(ca_certs="path_to_pem_file")"""
without server certification
please note that the method " client.tls_insecure_set(True) " checks only the hostname:
the server certificate is still verified. To disable the verification of the server
certificate use:client.tls_set(cert_reqs=ssl.CERT_NONE)
"""client.on_publish = on_publish
client.on_connect = on_connect
client.on_log = on_log"""
setting password and username
"""
client.username_pw_set(username, password)"""
connecting to the cloud broker service
"""
client.connect(host, 8883, 60)"""
calling loop function
"""
client.loop_start()
i = 0
message = "message "
while True:
i = i+1
client.publish("topic", message+str(i), 1)
sleep(3)client.disconnect()
client.loop_stop()
Comments
-
-
Hi @Tamimi ! I am planning to check your Python API in the next days. I will give you a feedback!
2