使用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.jar"是一个包含所有依赖的JAR文件,它是XMeter的扩展插件,专门用于测试MQTT服务。这个插件允许我们模拟大量客户端连接到MQTT服务器,发布和订阅消息...
MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端
本压缩包“mqtt-xmeter-syl-jar-with-dependencies.rar”包含了一个名为“mqtt-xmeter-syl-jar-with-dependencies”的文件,这很可能是一个Java应用,用于测试和分析MQTT协议的性能。 首先,我们来深入了解MQTT协议...
"mqtt-xmeter-2.0.2-jar-with-dependencies.jar" 文件就是这样的一个扩展,它使得JMeter能够支持对MQTT协议的测试。 这个jar文件包含了所有必要的依赖,使用户无需额外安装其他库即可在JMeter中执行MQTT相关的测试...
mqtt-client-0.4.0.jar
4. **QoS(Quality of Service)服务质量**:MQTT定义了三种QoS级别(0、1、2),确保消息至少被传递一次或者按顺序传递,权衡可靠性和效率。 5. **持久化连接**:保持客户端与broker之间的连接,即使在短暂的网络...
例如,文档中提到的MQTT-3.1.1版本,这个版本主要的改动包括增强了协议规范和改进了协议的互操作性。 由于MQTT协议具有良好的扩展性和灵活性,它在物联网(IoT)领域得到了广泛的应用。物联网中的设备往往受限于...
jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试
2. **QoS服务质量**:MQTT提供了三种服务质量级别:QoS0(最多一次)、QoS1(至少一次)和QoS2(恰好一次)。这些级别确保了消息在不同网络条件下的可靠传输。 3. **保持连接**:MQTT支持长时间的客户端连接,这在...
MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...
在mqtt.fx中,你可以连接到任何支持MQTT协议的服务器,通常称为MQTT Broker。它提供了丰富的功能,包括: 1. **连接管理**:用户可以配置多个MQTT服务器的连接参数,如服务器地址、端口号、用户名、密码等。 2. **...
2. **客户端与代理**:在MQTT中,存在两种主要角色:客户端(Client)和代理(Broker)。客户端可以是发布者或订阅者,负责发送和接收消息。代理作为中心节点,负责接收所有客户端的消息,并根据订阅关系将消息分发...
- **连接MQTT broker**:使用`MQTTClient_connect()`函数,传入服务器地址、端口、客户端ID等参数。 - **发布消息**:调用`MQTTClient_publish()`,指定主题和消息内容。 - **订阅主题**:使用`MQTTClient_...
- **QoS保证**:MQTT有三种服务质量(QoS)级别:0、1和2,分别对应最佳努力、至少一次和恰好一次的交付保证。Paho MQTT C++库支持这些QoS级别的设置。 - **会话管理**:通过会话管理,客户端可以在断线后恢复先前的...
赠送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 对应...
3. **协议实现**:全面实现了MQTT 3.1.1标准,包括QoS0、QoS1和QoS2三种服务质量级别,确保数据可靠传输。 4. **网络层兼容性**:库可直接与TCP/IP网络层交互,适应各种网络环境,包括WiFi、蓝牙、蜂窝网络等。 5....
3. **质量服务级别(QoS)**:MQTT提供了三种质量服务级别(QoS 0、QoS 1、QoS 2),用于确保消息的可靠传输。QoS 0为最佳努力交付,不保证消息的接收;QoS 1为至少一次交付,可能重复;QoS 2为精确一次交付,确保无...
MQTT-3.1.1-CN是中国版的MQTT 3.1.1规范,该规范由OASIS(Organization for the Advancement of Structured Information Standards)发布,并由MQTT技术委员会维护。 MQTT协议的核心特征包括: 1. **发布/订阅模型...