MQTT协议简介:
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、开放的、基于发布/订阅模式的消息传输协议,最初由IBM开发。它专门设计用于在低带宽、不稳定的网络环境下进行高效的消息传输。
学习完本篇文章,带你一起做个简单的聊天功能。
一.MQTT基础功能
1.发布/订阅模式:
MQTT采用发布/订阅模式,其中消息发布者称为发布者(Publisher),消息订阅者称为订阅者(Subscriber)。发布者将消息发布到一个或多个主题(Topic),而订阅者则订阅感兴趣的主题,以接收相关的消息。
2.主题(Topic):
主题是消息的标识符,用于将消息分类和路由到感兴趣的订阅者。主题通常采用层级结构,类似于文件系统的路径,例如 sensors/temperature/room1。订阅者可以使用通配符来订阅多个主题,例如 sensors/temperature/# 表示订阅所有以 sensors/temperature/ 开头的主题。
3.QoS(服务质量):
MQTT支持三种不同级别的服务质量(QoS):
QoS 0:最多一次传输。消息发送者将消息发送一次,不进行确认,可能丢失消息。
QoS 1:至少一次传输。消息发送者将消息发送,并等待接收到消息的确认,如果未收到确认,将重新发送消息。
QoS 2:恰好一次传输。消息发送者和接收者进行握手,并确保消息只被传输一次。
4.保留消息:
MQTT支持保留消息,发布者可以发布保留消息到一个主题,并且该消息将保留在服务器上,直到被覆盖或被新的保留消息替换。订阅者可以在订阅主题时接收到最新的保留消息。
5.遗嘱消息:
发布者可以在建立连接时设置遗嘱消息,当连接意外断开时,服务器将自动发布遗嘱消息到指定的主题。
6.连接选项:
MQTT连接可以设置各种选项,包括保持连接、清除会话、用户名和密码认证等。
二.MQTT原理

1.执行流程
一个设备向一个 “test” 主题发送数据,每个订阅 “test” 主题的设备,就能接收到来自 “test” 主题的信息。
2.默认服务器地址(test.mosquitto.org)
test.mosquitto.org是一个常用的公共MQTT代理,用于测试和学习MQTT协议。您可以使用该地址作为MQTT客户端连接的服务器地址。默认的MQTT端口号是1883(未加密)和8883(加密)。请注意,这是一个公共测试服务器,可能会受到流量限制或服务不稳定的影响。
3.工具的使用
https://mqttx.app/downloads

MQTT协议详解:轻量级通信在低带宽环境的应用与代码示例

本文介绍了MQTT协议的基本功能,如发布/订阅模式、主题、QoS级别、保留消息和遗嘱消息,以及如何在实际项目中通过Flutter实现一个简单的聊天功能,包括连接、订阅、发送和监听消息。
最低0.47元/天 解锁文章
981

被折叠的 条评论
为什么被折叠?



