MQTT通信架构 搭建MQTT服务器

这篇具有很好参考价值的文章主要介绍了MQTT通信架构 搭建MQTT服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MQ 遥测传输 (MQTT) 是基于代理发布/订阅的消息传输协议。

  • 传输屏蔽消息内容
  • TCP/IP有连接传输(可靠)
  • 小型传输,开销很小,降低网络流量
  • 使用lastwill等机制告知客户端异常中断(本次实验用不到)
  • 三种消息发布服务质量
  • 至多一次:消息发布完全依赖底层TCP/IP网络,会发生消息的丢失或重复。环境传感器发送数据就是用整个,因为不久之后传感器会传来第二个数据。
  • 至少一次(可能重复,但是消息确保可以到达)
  • 只有一次:计费系统这种,消息若丢失,多次发送但是一定只会生效一次(不会发生消息重复)。

MQTT结合传感器的物联网架构图:
MQTT通信架构 搭建MQTT服务器
可以看到需要一个MQ中间件,我认为只是简单的消息订阅/发送的必要性,或许可以用我更熟悉的rocketmq或rabbitmq来代替。但是看教程全是apoll服务器,为了避免知识局限性带来的后续麻烦,我选择随大流。
安装apoll服务器:下载连接 Apollo Server Download
解压后,在bin下创建一个server,再创一个broker
MQTT通信架构 搭建MQTT服务器
MQTT通信架构 搭建MQTT服务器
创建server完成。

管理员身份CMD/POWERSHELL运行命令。
MQTT通信架构 搭建MQTT服务器
注意,JDK版本1.8。因为java9引入模块,javase中不再包含一些依赖。
MQTT通信架构 搭建MQTT服务器

要注意的点:
MQTT服务器TCP连接端口:tcp://0.0.0.0:61613 (tcp通讯,sensor(publisher)要连接的端口)

后台Web管理页面:https://127.0.0.1:61681/或http://127.0.0.1:61680/

MQTT通信架构 搭建MQTT服务器
etc/user.properties里面是用户名密码。登陆成功。

至此,mqtt服务器完成搭建。

完成client端(python)

这里是client(terminal)接受信息的。

import paho.mqtt.client
import time

mqtt = paho.mqtt.client

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc)) #打印连接状态
    client.subscribe("temperature") #订阅temperature这个topic


def on_message(client, userdata, msg):
    print(msg.topic+" " + ":" + str(msg.payload)) #打印接受的消息



client_id = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
client = mqtt.Client(client_id)    # ClientId不能重复,所以使用当前时间
client.username_pw_set("admin", "password")  # 必须设置,否则会返回「Connected with result code 4」
client.on_connect = on_connect
client.on_message = on_message
client.connect("127.0.0.1", 61613, 60) # host port keepalive
client.loop_forever()


完成连接
MQTT通信架构 搭建MQTT服务器

完成publisher:

类似的,也是连接上之后,发布随机数生成的温度即可。
注意!!!!!!大坑:不能有同名的client_id否则没法发布消息/接受消息(只会有一个client生效)

import random
import paho.mqtt.client
import time
mqtt = paho.mqtt.client
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc)) #打印连接状态
    client.subscribe("temperature") #订阅temperature这个topic
def on_message(client, userdata, msg):
    print(msg.topic+" " + ":" + str(msg.payload)) #打印接受的消息
client_id = time.strftime('%Y%m%d%H%M%S'+"sensor",time.localtime(time.time()))
client = mqtt.Client(client_id)    # ClientId不能重复,所以使用当前时间
client.username_pw_set("admin", "admin")  # 必须设置,否则会返回「Connected with result code 4」
client.on_connect = on_connect
client.on_message = on_message
client.connect("127.0.0.1", 61613, 60)
while True:
    time.sleep(2)
    temptemp = random.randint(1,40)
    print("准备发送下2s的温度数据:",temptemp)
    client.publish("temperature", payload=str(temptemp), qos=2)

client.loop_forever()

这样,client的terminal端可以收到:

MQTT通信架构 搭建MQTT服务器文章来源地址https://www.toymoban.com/news/detail-430593.html

到了这里,关于MQTT通信架构 搭建MQTT服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自己搭建mqtt服务器

            前言:网上资料大部分都是使用的云服务,我是采用自己搭建的服务器来进行试验的,接下来将记录过程。 云服务器有很多种网上也有很多教学在这里不进行过多的解释了,我实验的时候采用的阿里云国内的服务器这里以后还会进行介绍。         本实验主要

    2024年02月03日
    浏览(40)
  • 本地MQTT服务器搭建(EMQX)

    下载地址:EMQ (emqx.com) 打开官网后,选择右边的免费试用按钮 然后单击EMQX Enterprise标签,然后选择下面的EMQX开源版,选择开源版的系统平台为Windows,单击免费下载。 在新页面下单击立即下载 将下载的emqx-5.1.6-windows-amd64.zip解压出来,解压目录不能存在中文、空格、特殊字符

    2024年02月09日
    浏览(33)
  • Windows下搭建MQTT服务器

    MQ遥测传输(MQTT)是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于低带宽受限环境。 特点包括以下: 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。 对负载内容屏蔽的消息传输。 使用

    2024年02月03日
    浏览(59)
  • Linux搭建MQTT服务器(Mosquitto)

    编译时,若提示fatal error: cjson/cJSON.h: No such file or directory,需要安装cJSON,然后重新安装mosquitto。 若不添加软连接,发布、订阅消息时会提示\\\"error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory\\\"。 打开两个服务器连接,分别执行mosquitto_sub、

    2024年02月09日
    浏览(39)
  • mqtt服务器搭建与qt下的mqtt客户端实现

      MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(Io

    2024年02月06日
    浏览(73)
  • 快速搭建个人MQTT服务器(基于EMQX)

    4分钟快速搭建个人MQTT服务器(基于EMQX) 相信看到这篇教程的人应该对MQTT协议有了一定的了解。其实提供MQTT服务的厂商也有很多,比较知名的有EMQX等。EMQX虽然提供了免费的公共MQTT5服务器。 但是对于多个用户利用公共服务器同时订阅或发布同一主题内容时,可能会接收到

    2024年02月03日
    浏览(37)
  • Windows环境下MosQuitto服务器搭建,安装mqtt服务端软件

    1、下载、安装MosQuitto服务器 下载地址:http://mosquitto.org/files/binary/ 根据平台选择相应的代码下载。 -u是用户名,-P是密码,-t是主题,-h是ip(如:127.0.0.1),-p是端口号 ,-m 是发布的消息 另外开启一个cmd窗口,然后订阅一个主题,主题名字叫 topic 再开启第三个cmd窗口,然后在

    2024年02月08日
    浏览(36)
  • Windows搭建MQTT服务器:详细步骤及代码实现

    Windows搭建MQTT服务器:详细步骤及代码实现 MQTT是一种轻量级的通信协议,常用于物联网领域中设备与设备之间的通信。在Windows操作系统下,搭建MQTT服务器可作为物联网通信的基础设施。本文将详细介绍Windows下如何搭建MQTT服务器,包括安装软件、配置服务、使用代码实现等

    2024年02月06日
    浏览(41)
  • Linux环境(Ubuntu)上搭建MQTT服务器(EMQX )

    目录 概述 1 认识EMQX 1.1 EMQX 简介 1.2 EMQX 版本类型 2 Ubuntu搭建EMQX 平台 2.1 下载和安装 2.1.1 下载 2.1.2 安装 2.2 查看运行端口 3 运行Dashboard 管理控制台 3.1 查看Ubuntu上的防火墙 3.2 运行Dashboard 管理控制台 本文主要介绍EMQX 的一些内容,终端介绍如何在Ubuntu上安装EMQX,并可以在第三

    2024年04月08日
    浏览(38)
  • 【Android】MQTT入门——服务器部署与客户端搭建

    MQTT(Message Queuing Telemetry Transport) 是一种基于发布/订阅模式的轻量级消息传输协议,专门针对低带宽、和不稳定网络环境的物联网应用而设计,它可以用极少的代码为互联网设备提供实时可靠的消息服务。 MQTT 协议主要用于物联网和移动设备等资源有限的场景中,其中包括

    2024年02月04日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包