美文网首页
MQTT的发布和订阅

MQTT的发布和订阅

作者: Garfield猫 | 来源:发表于2021-03-17 08:30 被阅读0次

准备工作

本文测试MQTT的发布/订阅,分为客户端版和python版。

首先我们需要一个MQTT服务器,这里推荐使用EMQ,一步搭建,省去了很多部署的麻烦。

选择Windows版本下载,自己选择目录解压后,进入bin目录打开cmd,运行emqx start命令开启服务即可。此时在浏览器地址栏输入: localhost:18083,输入用户名:admin,密码:public进入,可以看到主界面。

Python版本

下载库

cmd下执行这个命令

pip install paho-mqtt

编写订阅端

新建一个mqtt_sub.py文件,编写代码如下:

import paho.mqtt.client as mqtt

HOST = "127.0.0.1"
PORT = 1883


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(host=HOST, port=PORT, keepalive=600)
client.loop_forever()

编写发布端

新建一个mqtt_pub.py文件,编写代码如下:

import paho.mqtt.client as mqtt

HOST = "127.0.0.1"
PORT = 1883
mqttClient = mqtt.Client()


# 连接MQTT服务器
def on_mqtt_connect():
    mqttClient.connect(host=HOST, port=PORT, keepalive=600)
    mqttClient.loop_start()


# publish 消息
def on_publish(topic, payload, qos):
    mqttClient.publish(topic, payload, qos)


# 消息处理函数
def on_message_come(client, userdata, msg):
    print(msg.topic + " " + ":" + str(msg.payload))


# subscribe 消息
def on_subscribe():
    mqttClient.subscribe(topic="chat", qos=2)
    mqttClient.on_message = on_message_come  # 消息到来处理函数


def main():
    on_mqtt_connect()
    on_publish(topic="chat", payload="Hello Python!", qos=2)
    on_subscribe()
    while True:
        pass


if __name__ == '__main__':
    main()

执行文件

首先运行mqtt_sub.py,接着,同时运行mqtt_pub.py,这时候就可以收到自己订阅的消息

至此,Python版本测试成功。完整代码

客户端版本

下载客户端工具

这里推荐MQTT.fx

下载完毕安装后打开界面如下:

配置连接

Extras->Edit Connection Profiles,然后按照下图配置

配置完毕后点击Connect

创建自己的订阅

这边配置完毕,接下来进入刚刚的Dashboard,选择Websocket

先连接

然后发布一个主题为goods的信息

发送后MQTT.fx客户端便会接收到发送的信息

至此,客户端版本测试完毕

相关文章

  • MQTT 服务器介绍

    MQTT 发布订阅模式简述 MQTT 是基于 发布(Publish)/订阅(Subscribe) 模式来进行通信及...

  • MQTT的发布和订阅

    准备工作 本文测试MQTT的发布/订阅,分为客户端版和python版。 首先我们需要一个MQTT服务器,这里推荐使...

  • MQTT发布/订阅

    总之:发布和订阅解耦了消息的发布者和订阅者,通过消息过滤,可以让客户端只收特定的消息。解耦有三个纬度:空间,时间,同步。

  • MQTT 发布订阅

  • MQTT深入浅出系列(一)

    mqtt介绍与使用 mqtt协议是轻量级的消息订阅和发布(publish/subscribe)协议,建立在TCP/...

  • 物流网首选协议,关于 MQTT 你需要了解这些

    MQTT 协议简介 概览 MQTT[https://mqtt.org/] 是一种基于发布/订阅模式的轻量级消息传输...

  • MQTT 发布/订阅模式介绍

    MQTT 发布/订阅模式 发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它...

  • MQTT 5.0 - 发布订阅模式介绍

    MQTT 协议的核心在于发布订阅模式,在本文中,我们将对这一模式进行深入的介绍。 发布订阅模式 发布订阅模式区别于...

  • MQTT协议总结

    MQTT Protocol MQTT协议特性 一句话总结:MQTT是一个简单,轻量的消息发布/订阅协议。 MQTT...

  • MQTT 协议系列之基础概念

    1 MQTT 协议的通信模型 就像我们之前提到的那样,MQTT 的通信是发布/订阅的方式来实现的,消息的发布方和订...

网友评论

      本文标题:MQTT的发布和订阅

      本文链接:https://www.haomeiwen.com/subject/jalscltx.html