{"id":1057,"date":"2023-08-31T22:40:11","date_gmt":"2023-08-31T14:40:11","guid":{"rendered":"https:\/\/www.fanyamin.com\/wordpress\/?p=1057"},"modified":"2023-08-31T22:40:11","modified_gmt":"2023-08-31T14:40:11","slug":"emq-with-python","status":"publish","type":"post","link":"https:\/\/www.fanyamin.com\/wordpress\/?p=1057","title":{"rendered":"EMQ with python"},"content":{"rendered":"<ol>\n<li>start EMQX<\/li>\n<\/ol>\n<pre><code>docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx\/emqx:latest<\/code><\/pre>\n<ol start=\"2\">\n<li>install paho-mqtt library<\/li>\n<\/ol>\n<pre><code>pip3 install paho-mqtt<\/code><\/pre>\n<ol start=\"3\">\n<li>start subscriber<\/li>\n<\/ol>\n<pre><code>import paho.mqtt.client as mqtt\n\u200b\n# The callback function of connection\ndef on_connect(client, userdata, flags, rc):\n    print(f&quot;Connected with result code {rc}&quot;)\n    client.subscribe(&quot;$SYS\/#&quot;)\n\n# The callback function for received message\ndef on_message(client, userdata, msg):\n    print(msg.topic+&quot; &quot;+str(msg.payload))\n\nclient = mqtt.Client()\nclient.on_connect = on_connect\nclient.on_message = on_message\nclient.connect(&quot;broker.emqx.io&quot;, 1883, 60)\nclient.loop_forever()<\/code><\/pre>\n<ol start=\"4\">\n<li>start publisher<\/li>\n<\/ol>\n<pre><code>import paho.mqtt.client as mqtt\nimport time\ndef on_connect(client, userdata, flags, rc):\n    print(f&quot;Connected with result code {rc}&quot;)\n\nclient = mqtt.Client()\nclient.on_connect = on_connect\nclient.connect(&quot;broker.emqx.io&quot;, 1883, 60)\nfor i in range(3):\n    client.publish(&#039;a\/b&#039;, payload=i, qos=0, retain=False)\n    print(f&quot;send {i} to a\/b&quot;)\n    time.sleep(1)\n\u200b\nclient.loop_forever()<\/code><\/pre>\n<p>or<\/p>\n<pre><code>import paho.mqtt.subscribe as subscribe\n\u200b\n# When this function is called, the program will block here until a message is sent to the topic paho\/test\/simple\nmsg = subscribe.simple(&quot;paho\/test\/simple&quot;, hostname=&quot;broker.emqx.io&quot;)\nprint(f&quot;{msg.topic} {msg.payload}&quot;)\nimport paho.mqtt.publish as publish\n\u200b\n# Send a message\npublish.single(&quot;a\/b&quot;, &quot;payload&quot;, hostname=&quot;broker.emqx.io&quot;)\n# Or send multiple messages at once\nmsgs = [{&#039;topic&#039;:&quot;a\/b&quot;, &#039;payload&#039;:&quot;multiple 1&quot;}, (&quot;a\/b&quot;, &quot;multiple 2&quot;, 0, False)]\npublish.multiple(msgs, hostname=&quot;broker.emqx.io&quot;)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>start EMQX docker run -d &#8211;name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx\/emqx:latest install paho-mqtt library pip3 install paho-mqtt start subscriber import paho.mqtt.client as mqtt \u200b # The callback function of connection def on_connect(client, userdata, flags, rc): print(f&quot;Connected with result code {rc}&quot;) client.subscribe(&quot;$SYS\/#&quot;) # The callback function for received message [&hellip;] <a class=\"read-more\" href=\"https:\/\/www.fanyamin.com\/wordpress\/?p=1057\" title=\"Permanent Link to: EMQ with python\">&rarr;Read&nbsp;more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1057","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1057"}],"collection":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1057"}],"version-history":[{"count":1,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions"}],"predecessor-version":[{"id":1058,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1057\/revisions\/1058"}],"wp:attachment":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}