python Mqtt 的安裝及使用
簡介&安裝
MQTT是一個基於客戶端-伺服器的訊息釋出/訂閱傳輸協議。MQTT協議是輕量、簡單、開放和易於實現的
,這些特點使它適用範圍非常廣泛.可以以極少的程式碼和有限的頻寬,為連線遠端裝置提供實時可靠的消
息服務。作為一種低開銷、低頻寬佔用的即時通訊協議,使其在物聯網、小型裝置、移動應用等方面有
較廣泛的應用。
MQTT 提供兩個核心功能:
三種級別的訊息釋出服務質量
基於訂閱/釋出的訊息轉發服務。
有三種訊息釋出服務質量:
"至多一次",訊息釋出完全依賴底層TCP/IP網路。會發生訊息丟失或重複。這一級別可用於如下情況,
環境感測器資料,丟失一次讀記錄無所謂,因為不久後還會有第二次傳送。這一種方式主要普通APP的推
送,倘若你的智慧裝置在訊息推送時未聯網,推送過去沒收到,再次聯網也就收不到了。
"至少一次",確保訊息到達,但訊息重複可能會發生。
"只有一次",確保訊息到達一次。在一些要求比較嚴格的計費系統中,可以使用此級別。在計費系統中
,訊息重複或丟失會導致不正確的結果。這種最高質量的訊息釋出服務還可以用於即時通訊類的APP的推
送,確保使用者收到且只會收到一次。
安裝方式見官網介紹:
Mac 安裝方式非常簡單
brew install mosquitto
新夢想技術分享
安裝完成,可以見它的配置檔案為地址在 /usr/local/etc/mosquitto/mosquitto.conf 下
啟動MQTT服務命令為
mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf 即可開啟服務
如果提示 mosquitto 命令未找到,就新增一下環境變數
MOSQUITTO_HOME=/usr/local/Cellar/mosquitto/1.6.9/sbin
export MOSQUITTO_HOME
export PATH=$PATH:$MOSQUITTO_HOME
啟動服務 brew services start mosquitto
停止服務 brew services stop mosquitto
傳送訊息命令
mosquitto_pub -h 127.0.0.1 -p 1883 -t "mytopic" -m "222"
表示向 主題為 mytopic 傳送一條 內容為 222的訊息
新增訂閱主題命令
mosquitto_sub -h 127.0.0.1 -p 1883 -t "mytopic" -v
表示向 mqtt中新增 一個主題為 mytopic 的監聽
新夢想技術分享
以上是命令的方式測試及驗證相關功能,那麼在python中程式碼如何呼叫呢
Python 使用MQTT
MqttClient.py
import datetime
import paho.mqtt.client as mqtt
# 伺服器地址
strBroker = "localhost"
# 通訊埠
port = 1883
# 使用者名稱
username = 'username'
# 密碼
password = 'password'
# 訂閱主題名
topic = 'topic'
def on_connect(mqttc, obj, rc):
print("OnConnetc, rc: " + str(rc))
def on_publish(mqttc, obj, mid):
print("OnPublish, mid: " + str(mid))
def on_subscribe(mqttc, obj, mid, granted_qos):
print("Subscribed: " + str(mid) + " " + str(granted_qos))
def on_log(mqttc, obj, level, string):
print("Log:" + string)
def on_message(mqttc, obj, msg):
curtime = datetime.datetime.now()
strcurtime = curtime.strftime("%Y-%m-%d %H:%M:%S")
print(strcurtime + ": " + msg.topic + " " + str(msg.qos) + " " + str(msg.payload))
on_exec(str(msg.payload))
def on_exec(strcmd):
"Exec:", strcmd
# =====================================================
if __name__ == '__main__':
mqttc = mqtt.Client("test")
mqttc.>
mqttc.>
mqttc.>
mqttc.>
mqttc.>
# 設定賬號密碼
# mqttc.username_pw_set(username, password=password)
mqttc.connect(strBroker, port, 60)
mqttc.subscribe(topic, 0)
mqttc.loop_forever()
MqttServer.py
import sys
import datetime
import socket, sys
import paho.mqtt.publish as publish
'''
傳送訊息
'''
def transmitMQTT(strMsg):
strMqttBroker = "localhost"
strMqttTopic = "topic"
publish.single(strMqttTopic, strMsg, hostname=strMqttBroker)
if __name__ == '__main__':
msg = "Hello,MQTT 2020!"
transmitMQTT("msg")
print("Send msg = [", msg, "] ok.")
ps :如果Homebrew 更新太慢,可以替換Homebrew 源,具體參見這個文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2936935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go 安裝與使用 mqttGoMQQT
- Python pip的安裝及解除安裝Python
- 使用 Helm 安裝 MQTT 伺服器-EMQXMQQT伺服器
- Git的安裝及使用Git
- miniconda的安裝及使用
- kafka的安裝及使用Kafka
- Windows下安裝Redis及使用Python操作Redis的方法WindowsRedisPython
- Python的安裝和使用Python
- Anaconda的安裝配置及Python配置Python
- Redis的安裝及基本使用Redis
- Angular CLI的安裝及使用Angular
- Raspberry:Wiringpi的安裝及使用
- Python安裝及包管理Python
- 安裝及使用RSSHub
- Docker安裝及使用Docker
- nvm 安裝及使用
- kafka安裝及使用Kafka
- webbench安裝及使用Web
- nvitop 安裝及使用
- Sublime 安裝及使用
- expect安裝及使用
- VC++ 6.0的安裝及使用C++
- 安裝python並使用Python
- Python安裝教程(非常詳細) python如何安裝使用Python
- docker安裝mongoDB及使用DockerMongoDB
- easyWeChat 6.0 安裝及使用
- Windows nvm的安裝使用(及排坑)Windows
- Docker的安裝配置及使用詳解Docker
- log4cpp的安裝及使用
- PHP歷理 PhpStorm的安裝及使用PHPORM
- Redis的安裝及在Java中的使用RedisJava
- python juypter 安裝及執行.ipynbPython
- python gdal 安裝使用(Windows, python 3.6.8)PythonWindows
- Mac OS X 下 Python 多版本管理器 pyenv 的安裝及使用MacPython
- ElasticSearch安裝及java Api使用ElasticsearchJavaAPI
- Kibana安裝及使用說明
- git_stats安裝及使用Git
- Locust 簡介及安裝使用