百问网7天物联网smarthome学习笔记6之MQTT原理

端口的作用

  • 一个电脑上两个浏览器访问同一个网站(服务器),浏览器发出的数据里,源IP相同,目的(服务器)IP,目的端口相同,唯有源端口不同。
  • 一个电脑上两个软件:SSH client和浏览器访问另一个网站,这两个软件发出的数据里,目的IP相同,但是端口号不同,SSH client 访问ssh服务器,端口是22;浏览器访问http服务器,端口是80。

路由器

  • 路由器连接私网和公网,私网中使用私网IP地址,公网中使用公网IP地址。
  • 私网中源设备往外发送数据时,路由器将数据中源设备的IP和端口换成公网IP和端口;
  • 路由器收到公网中某设备发来的数据,查看数据中的目的IP和端口,在自己维护的地址对应表中查找,能找到,则换成某私网设备的IP和端口。

MQTT原理

  • 通信系统由客户端和服务器组成,客户端既可以订阅(subscribe)也可以发布(Publish),是一个使用MQTT协议的应用程序或设备,建立或断开与服务器的连接;发布其他客户端可能会订阅的消息,订阅其他客户端发布的消息,退订或删除其他客户端发布的消息。服务器称之为代理“broker”,可以是一个应用程序或一个设备,它是连接消息发布者和订阅者的桥梁;接收来自客户端的网络连接和客户端发来的消息,处理来自客户端的订阅和退订请求,向订阅的客户端转发应用程序消息。

  • Topic:MQTT消息类型

  • Payload:MQTT消息的内容

  • QoS0:最多发一次;QoS1:至少发一次;QoS2:只发一次

  • API

    • Connect MQTT客户端与服务器创建连接;其内容有Client Identifier,客户端ID,必须是UTF-8格式的字符串;Will Topic,遗嘱topic;Will Message,遗嘱消息;User Name,用户名;Password,密码。

      遗嘱topic和遗嘱消息的作用:当客户端因某种原因可服务器断开链接,服务器将发布一个topic为遗嘱topic的遗嘱消息,其他订阅了这个topic的客户端就会收到这个消息。

    • Disconnect MQTT客户端断开与服务器的连接

    • Subscribe MQTT客户端订阅某个topic,包含客户端要订阅的topic和QoS。

    • UnSubscribe MQTT客户端取消对某个主题的订阅,包含客户端要退订的topic。

    • Publish 客户端发送某个主题的消息给服务器,包含的是应用程序中需要发布的消息,可以是一个长度为0的消息。

  • MQTT协议参考文档mqtt-v3.1.1-errata01-os-complete.pdf

  • MQTT官方网址mqtt.org(software->client libraries->C->Eclipse Paho Embedded C->Source(github网址)可以找到嵌入式客户端库Eclipse Paho Embedded C);MQTT PC端软件MQTT Explorer、MQTT X;MQTT代理/服务器 阿里云互联网平台、腾讯云互联网平台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值