使用python實現mqtt的釋出和訂閱
需要安裝的python庫
使用python編寫程式進行測試MQTT的釋出和訂閱功能。首先要安裝:pip install paho-mqtt
測試釋出(pub)
我的MQTT部署在阿里雲的伺服器上面,所以我在本機上編寫了python程式進行測試。
然後在shell裡面重新開啟一個終端,訂閱一個主題為“chat” mosquitto_sub -t chat
在本機上測試遠端的MQTT的釋出功能就是把自己作為一個傳送資訊的人,當自己傳送資訊的時候,所有訂閱過該主題(topic)的物件都將收到自己傳送的資訊。
mqtt_client.py
# encoding: utf-8
import paho.mqtt.client as mqtt
HOST = "101.200.46.138"
PORT = 1883
def test():
client = mqtt.Client()
client.connect(HOST, PORT, 60)
client.publish("chat","hello liefyuan",2) # 釋出一個主題為'chat',內容為‘hello liefyuan’的資訊
client.loop_forever()
if __name__ == '__main__':
test()
釋出/訂閱測試
# -*- coding: utf-8 -*-
import paho.mqtt.client as mqtt
MQTTHOST = "101.200.46.138"
MQTTPORT = 1883
mqttClient = mqtt.Client()
# 連線MQTT伺服器
def on_mqtt_connect():
mqttClient.connect(MQTTHOST, MQTTPORT, 60)
mqttClient.loop_start()
# publish 訊息
def on_publish(topic, payload, qos):
mqttClient.publish(topic, payload, qos)
# 訊息處理函式
def on_message_come(lient, userdata, msg):
print(msg.topic + " " + ":" + str(msg.payload))
# subscribe 訊息
def on_subscribe():
mqttClient.subscribe("/server", 1)
mqttClient.on_message = on_message_come # 訊息到來處理函式
def main():
on_mqtt_connect()
on_publish("/test/server", "Hello Python!", 1)
on_subscribe()
while True:
pass
if __name__ == '__main__':
main()
註解函式:
client.connect(self, host, port, keepalive, bind_address)
client.publish(self, topic, payload, qos, retain)
client.subscribe(self, topic, qos)
測試訂閱(sub)
在本機上編寫程式測試訂閱功能,就是讓自己的程式作為一個接收者,同一個主題沒有釋出(pub)資訊的時候,就自己一直等候。
# encoding: utf-8
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("chat")
def on_message(client, userdata, msg):
print(msg.topic+" " + ":" + str(msg.payload))
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("www.liefyuan.top", 1883, 60)
client.loop_forever()
相關推薦
使用python實現mqtt的釋出和訂閱
需要安裝的python庫 使用python編寫程式進行測試MQTT的釋出和訂閱功能。首先要安裝:pip install paho-mqtt測試釋出(pub) 我的MQTT部署在阿里雲的伺服器上面,所以我在本機上編寫了python程式進行測試。然後在shell裡面重新開啟一個終端,訂閱一個主題為“chat” m
在QT上實現ROS 節點的釋出和訂閱
1、安裝ros_qtc_plugin 2、ROS工程建立 2.1、新建工作區,點選New Project 選擇Other Project -> ROS Workspace: 2.2、填寫工作區名稱,選擇路徑。選擇路徑時建議新建同名資料夾,工作區建立時沒
python程式釋出和訂閱ros話題
編寫talker.py: 這個檔案呼叫了opencv開啟攝像頭獲取影象併發布出去 #!/usr/bin/env python # license removed for brevity import rospy from sensor_msgs.msg import
MAC下搭建MQTT客戶端,測試釋出和訂閱話題
1. 下載MQTTKIT開源庫,編譯出你所需要的libMQTTKit.a和標頭檔案 MQTTKIT開源庫github下載地址:點這裡 下載好MQTTKIT開源庫後,編譯下(假如你想在模擬器上執行客戶端,可以直接編譯出一個模擬器版本的libMQTTKit.a和標頭檔案,反之編
python操作redis進行釋出和訂閱訊息
在遠端伺服器安裝redis,並啟動 訂閱端程式碼 import redis pool=redis.ConnectionPool(host='192.168.100.30',
Jedis實現Publish/Subscribe功能(釋出和訂閱)
Redis為我們提供了publish/subscribe(釋出/訂閱)功能。我們可以對某個channel(頻道)進行subscribe(訂閱),當有人在這個channel上publish(釋出)訊息時,redis就會通知我們,這樣我們可以收到別人釋出的訊息。 作為Java的redis客戶端,Jedis提
ROS學習第五彈(釋出和訂閱 Python寫 Publisher and Subscriber)
1.寫一個釋出節點 節點是ROS中被ROS網路連線起來的可執行的項,我們將建立一個釋出節點來持續廣播訊息。 首先去教程包的地址: roscd beginner_tutorials 1.1 程式碼 需要建立一個script的指令碼資料夾並儲存Python程式碼: $ m
Android使用MQTT實現訊息釋出與訂閱
關於MQTTMQTT(Message Queuing Telemetry Transport,訊息佇列遙測傳輸)是IBM開發的一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支援所有平臺,幾乎可以把所有聯網物品和外部連線起來,被用來當做感測器和制動器(比如通過Twit
使用python實現冒泡排序和快速排序
code def bubble python實現 style range 交換 冒泡排序 sdn 1 def bubble(arr): 2 """冒泡排序""" 3 loop = len(arr) - 1 4 if loop > 0:
python實現猜數字和猜拳小遊戲
編寫 -1 猜拳遊戲 com 猜數字小遊戲 軟件 +++ draw 小遊戲 1.猜數字小遊戲 #!/usr/bin/python #-*-coding:utf-8-*- import random print "-----------------------------
如何用Python實現堆棧和隊列詳細講解
Python語言 Python編程開發 Python案例應用 python實現堆棧 堆棧是一個後進先出的數據結構,其工作方式就像一堆汽車排隊進去一個死胡同裏面,最先進去的一定是最後出來。 我們可以設置一個類,用列表來存放棧中元素的信息,利用列表的append和pop方法可以實現棧的出棧po
WebService—CXF整合Spring實現介面釋出和呼叫過程
CXF整合Spring實現介面釋出 釋出過程如下: 1、引入jar包(基於maven管理) <dependency> <groupId>org.apache.cxf</groupId> <artifactId>
譯: 3. RabbitMQ Spring AMQP 之 Publish/Subscribe 釋出和訂閱
在第一篇教程中,我們展示瞭如何使用start.spring.io來利用Spring Initializr建立一個具有RabbitMQ starter dependency的專案來建立spring-amqp應用程式。 在上一個教程中,我們建立了一個新的包(tut2)來放置我們的配置,傳送者
利用python實現梯度下降和邏輯迴歸原理(Python詳細原始碼:預測學生是否被錄取)
本案例主要是:建立邏輯迴歸模型預測一個學生是否被大學錄取,沒有詳細介紹演算法推到, 讀者可查閱其他部落格理解梯度下降演算法的實現:https://blog.csdn.net/wangliang0633/article/details/79082901 資料格式如下:第三列表示錄取狀態,0--
4.Redis的訊息釋出和訂閱
Redis的訊息釋出和訂閱 Author:SimpleWu GitHub-redis 什麼是訊息釋出和訂閱? Redis 釋出訂閱(pub/sub)是一種程序間的訊息通訊模式: 傳送者(pub)傳送訊息 訂閱者(sub)接收訊息 Re
原生js實現觀察者和訂閱者模式
觀察者模式也叫 釋出者-訂閱者模式,釋出者釋出事件,訂閱者監聽事件並做出反應 在傳統的前端解耦方面,觀察者模式作為比較常見一種設計模式,大量使用在各種框架類庫的設計當中。 核心程式碼: //
《Redis官方文件》釋出和訂閱
原文連結: 釋出/訂閱(Pub/Sub) SUBSCRIBE、UNSUBSCRIBE 和 PUBLISH 這三個命令實現了釋出/訂閱訊息模式(引用自維基百科),傳送者(釋出者)並不是直接傳送它們的訊息給指定的接收者(訂閱者),而是將訊息釋出到特定的訊息通道,並且不需要知道訂閱者(如果有的話)的
python實現tcp伺服器和客戶端(socket)
python實現tcp伺服器和客戶端(socket) 1.socket模組 socket是什麼 socket最初是為了同一主機上的應用程式建立的,使得一個程式與另外一個程式之間可以通訊,也就是所謂的程序間通訊,有兩種型別的socket:基於檔案和麵向網路的。
redis的釋出和訂閱
釋出 PUBLISH 訂閱 SUBSCRIBE 釋出和訂閱的實驗 PUBLISH channel msg 將資訊 message 傳送到指定的頻道 channe
Python實現線性迴歸和邏輯迴歸演算法
本文使用python實現了線性迴歸和邏輯迴歸演算法,並使用邏輯迴歸在實際的資料集上預測疝氣病症病馬的死亡率(當然這裡我們的線性迴歸和邏輯迴歸實現是原生的演算法,並沒有考慮正則化係數問題,後期會將其補充完整)。 一、線性迴歸 1.模型表示 2.損失函式