使用MQTT,前提是需要一个服务器Server/Broker,除了自己搭建服务,刚开始时可以使用第三方提供的在线公开的免费Broker服务。使用这些免费Broker服务,可以在刚开始时快速理解MQTT协议。
其他:https://github.com/mqtt/mqtt.github.io/wiki/public_brokers
这些Broker/Server已经搭建好了,只需要编写Client/Subscriber就能测试一下MQTT了。
以使用Python的paho-mqtt来实现客户端。连接test.mosquitto.org服务为例。
(1)安装Eclipse Paho客户端
pip install paho-mqtt
(2)客户端连接
unencrypted-mqtt.py
# coding=utf8
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("test/rensanning/time")
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("test.mosquitto.org", 1883)
client.loop_forever()
执行 python unencrypted-mqtt.py
(2)发布消息
pub-mqtt.py
# coding=utf8
import paho.mqtt.client as mqtt
import time
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
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("test.mosquitto.org", 1883)
while client.loop() == 0:
msg = "test message from Publisher "+time.ctime()
client.publish("test/rensanning/time", msg, 0, True)
print("message published")
time.sleep(1.5)
pass
执行 python pub-mqtt.py
(3)订阅消息
sub-mqtt.py
# coding=utf8
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("test/rensanning/time")
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("test.mosquitto.org", 1883)
client.loop_forever()
执行 python sub-mqtt.py
同时运行订阅和发布客户端。
加密通信,访问8883端口
先从 http://test.mosquitto.org/ 下载 mosquitto.org.crt文件。
pub-mqtt-tls.py
# coding=utf8
import paho.mqtt.client as mqtt
import time
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
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.tls_set("mosquitto.org.crt")
client.connect("test.mosquitto.org", 8883)
while client.loop() == 0:
msg = "test message from Publisher "+time.ctime()
client.publish("test/rensanning/time", msg, 0, True)
print("message published")
time.sleep(1.5)
pass
执行 python pub-mqtt-tls.py
- 大小: 3.8 KB
- 大小: 13.5 KB
- 大小: 15.4 KB
- 大小: 13.6 KB
- 大小: 75.5 KB
- 大小: 14.5 KB
分享到:
相关推荐
mqtt-xmeter-2.0.2-jar-with-dependencies.zip
MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端
mqtt-xmeter-syl-jar-with-dependencies.rar
MQTT-3.1.1-CN(学习MQTT协议的完整中文资料),该文档详细描述了MQTT协议,希望对MQTT深入学习的童鞋值得下载。
jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试
JMeter测试Mqtt协议所需jar
mqtt.fx-1.7.1-windows-x64位安装包,完美使用
paho.mqtt.embedded-c-master.zip paho.mqtt.embedded-c-master.zip paho.mqtt.embedded-c-master.zip
mqtt linux paho.mqtt.embedded-c-master.zip软件包
MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...
mqtt协议的开源实现,中国移动onenet平台MQTT套件中官方c demo使用的第三方库paho.mqtt.c-1.3.0
mqtt-client-0.4.0.jar
paho.mqtt.c-master,mqtt C语言库
赠送jar包:mqtt-client-1.3.jar; 赠送原API文档:mqtt-client-1.3-javadoc.jar; 赠送源代码:mqtt-client-1.3-sources.jar; 包含翻译后的API文档:mqtt-client-1.3-javadoc-API文档-中文(简体)版.zip 对应...
mqtt-client-1.5-uber.jar
# Eclipse Paho MQTT C/C++ client for Embedded platforms This repository contains the source code for the [Eclipse Paho](http://eclipse.org/paho) MQTT C/C++ client library for Embedded platorms.
赠送jar包:mqtt-client-1.3.jar; 赠送原API文档:mqtt-client-1.3-javadoc.jar; 赠送源代码:mqtt-client-1.3-sources.jar; 包含翻译后的API文档:mqtt-client-1.3-javadoc-API文档-中文(简体)-英语-对照版....
MQTT-3.1.1-CN,MQTT协议中文版。不错的资料。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议