mqtt是应用层的协议,基于Tcp来实现的 :消息队列 遥感传输协议
它很适合于物联网的传感器和上位机之间的通信
他有几个特点:
1.轻量级
2.消耗更少的能量
3.持续连接
4.服务质量水平高一些
5.速度更快
其次mqtt是一种机器对机器、以数据为中心的轻量级协议 、其可以在资源受限的环境中运行,适合于物联网场景的应用。
mqtt:
与http的点对点连接不太一样,http是需要发布者订阅到订阅者的ip和端口然后进行这么一个点对点的通信。
而 mqtt不需要进行这么一个连接ip和端口的动作,只需要订阅相同的主题来进行通信即可,(前提是连接中心服务器)。
连接过程:
1.发布者发布主题(主题是一个字符串),订阅者订阅这个主题,就会自动形成连接。
2.发送的内容叫做负载
使用流程:
这里的是最后大项目中用到的mqtt
1.搭建broker服务器端
注意:这里搭建好之后记得使用命令开启服务器 服务器默认端口是1883
2.模拟客户端
这里是使用mqtt.fx来模拟客户端的收发数据 这是数据传递之前的设置界面。
( 注意ip地址是虚拟机的地址,订阅的主题要对应起来 下面的Client ID是仅能出现一次的ID,唯一标识)
注:在使用mqtt.fx之前要确保虚拟机和windows能ping通,且和网络也能ping通。
3.客户端的库移植
这里移植的作用是简化发送和接收的流程,直接移植代码过来,使用的时候只需修改ip地址和订阅的主题和负载即可
4.进入发送或接收的代码中去进行信息修改来进行数据的收发。
位置如下
只需修改
两个文件即可。
下面以subscri.c文件为例。
5.打开mqtt.fx来进行数据收发
先进行设置,设置ip地址,订阅主题,一方发送,则这里就是接收用,前提是第一部中已经打开了broker服务器,进行等待读写了
6.连接和收发数据
connect上ip,然后订阅第四步中的主题。 下面写需要进行发送的文件,点击publish就可以进行发送了。
可以看到已经正常收发成功了。