`
rensanning
  • 浏览: 3548638 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38145
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607311
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682331
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89355
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401851
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69694
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91722
社区版块
存档分类
最新评论

MQTT入门(2)- 公开的服务Broker

 
阅读更多
使用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
2
0
分享到:
评论

相关推荐

    mqtt-xmeter-2.0.2-jar-with-dependencies.zip

    该压缩包中的核心文件"mqtt-xmeter-2.0.2-jar-with-dependencies.jar"是一个包含所有依赖的JAR文件,它是XMeter的扩展插件,专门用于测试MQTT服务。这个插件允许我们模拟大量客户端连接到MQTT服务器,发布和订阅消息...

    MQTT-3.1.1-CN.zip_MQTT-3.1.1-CN_MQTT-3.1.1-CN.pdf_mqtt 3.1.1 文档

    MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端

    mqtt-xmeter-syl-jar-with-dependencies.rar

    本压缩包“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下载

    "mqtt-xmeter-2.0.2-jar-with-dependencies.jar" 文件就是这样的一个扩展,它使得JMeter能够支持对MQTT协议的测试。 这个jar文件包含了所有必要的依赖,使用户无需额外安装其他库即可在JMeter中执行MQTT相关的测试...

    mqtt-client-0.4.0

    mqtt-client-0.4.0.jar

    paho.mqtt.embedded-c-master.zip_MQTT编程_c mqtt linux_mqtt_paho mq

    4. **QoS(Quality of Service)服务质量**:MQTT定义了三种QoS级别(0、1、2),确保消息至少被传递一次或者按顺序传递,权衡可靠性和效率。 5. **持久化连接**:保持客户端与broker之间的连接,即使在短暂的网络...

    MQTT-3.1.1-CN(学习MQTT协议的完整中文资料)

    例如,文档中提到的MQTT-3.1.1版本,这个版本主要的改动包括增强了协议规范和改进了协议的互操作性。 由于MQTT协议具有良好的扩展性和灵活性,它在物联网(IoT)领域得到了广泛的应用。物联网中的设备往往受限于...

    mqtt-xmeter-jar-with-dependencies.jar

    jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试

    MQTT-Client-master.rar_MQTT 服务器_MQTT client_MQTT-master_mqtt 客户

    2. **QoS服务质量**:MQTT提供了三种服务质量级别:QoS0(最多一次)、QoS1(至少一次)和QoS2(恰好一次)。这些级别确保了消息在不同网络条件下的可靠传输。 3. **保持连接**:MQTT支持长时间的客户端连接,这在...

    mqtt-xmeter-2.0.2-jar-with-dependencies.jar

    MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...

    mqtt.fx-1.7.1-windows-x64位安装包

    在mqtt.fx中,你可以连接到任何支持MQTT协议的服务器,通常称为MQTT Broker。它提供了丰富的功能,包括: 1. **连接管理**:用户可以配置多个MQTT服务器的连接参数,如服务器地址、端口号、用户名、密码等。 2. **...

    paho.mqtt.c-1.3.5.tar.gz

    2. **客户端与代理**:在MQTT中,存在两种主要角色:客户端(Client)和代理(Broker)。客户端可以是发布者或订阅者,负责发送和接收消息。代理作为中心节点,负责接收所有客户端的消息,并根据订阅关系将消息分发...

    paho.mqtt.c-master.zip_C++ MQTT_C++实现MQTT_drawvvw_mqtt_mqtt c语言

    - **连接MQTT broker**:使用`MQTTClient_connect()`函数,传入服务器地址、端口、客户端ID等参数。 - **发布消息**:调用`MQTTClient_publish()`,指定主题和消息内容。 - **订阅主题**:使用`MQTTClient_...

    paho.mqtt.cpp-master.zip

    - **QoS保证**:MQTT有三种服务质量(QoS)级别:0、1和2,分别对应最佳努力、至少一次和恰好一次的交付保证。Paho MQTT C++库支持这些QoS级别的设置。 - **会话管理**:通过会话管理,客户端可以在断线后恢复先前的...

    mqtt-client-1.3-API文档-中文版.zip

    赠送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 对应...

    paho.mqtt.embedded-c-master.zip

    3. **协议实现**:全面实现了MQTT 3.1.1标准,包括QoS0、QoS1和QoS2三种服务质量级别,确保数据可靠传输。 4. **网络层兼容性**:库可直接与TCP/IP网络层交互,适应各种网络环境,包括WiFi、蓝牙、蜂窝网络等。 5....

    paho.mqtt.c-1.3.0.zip

    3. **质量服务级别(QoS)**:MQTT提供了三种质量服务级别(QoS 0、QoS 1、QoS 2),用于确保消息的可靠传输。QoS 0为最佳努力交付,不保证消息的接收;QoS 1为至少一次交付,可能重复;QoS 2为精确一次交付,确保无...

    MQTT-3.1.1-CN.pdf

    MQTT-3.1.1-CN是中国版的MQTT 3.1.1规范,该规范由OASIS(Organization for the Advancement of Structured Information Standards)发布,并由MQTT技术委员会维护。 MQTT协议的核心特征包括: 1. **发布/订阅模型...

Global site tag (gtag.js) - Google Analytics