MQTT服务器搭建以及构建服务端和客户端——Windows

一、MQTT介绍

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是IBM推出的一种针对移动终端设备的基于TCP/IP的发布/预订协议,可以连接大量的远程传感器和控制设备:

  • 轻量级的消息订阅和发布(publish/subscribe)协议
  • 建立在TCP/IP协议之上

MQTT的特点

  • MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。
  • MQTT协议是轻量、简单、开放和易于实现的,这些特点使其使用于在物联网、小型设备、移动应用等方面应用。
  • MQTT可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务

使用MQTT的消息发布服务质量

  • “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
  • “至少一次”,确保消息到达,但消息重复可能会发生。
  • “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

MQTT的三种角色

  • Broker代理:很多人理解为中间件,当然可以这样子认为。他就是一个中间件。用于处理信息并发送到相应的订阅者。
  • 发布者:用于发布信息到代理上面。注意:发布者也可以是订阅者。
  • 订阅者:就是用于接受信息的客户端。

补充:
MQTT服务器又称为"消息代理"(Broker),可以是一个应用程序或一台设备,它是位于消息发布者和订阅者之间。
作用
①接受来自客户的网络连接;
②接受客户发布的应用信息;
③处理来自客户端的订阅和退订请求;
④向订阅的客户转发应用程序消息。

由此,看来MQTT服务器占据重要地位。

二、使用Apollo搭建MQTT服务器

1.下载Apache Apoll
https://pan.baidu.com/s/1c2NJmJe
2.解压
文件内容如下
在这里插入图片描述
3.其他内容的设置
①配置jdk(如果之前已经配置好,可以直接忽略)
添加java路径到系统Path变量

JAVA_HOME
C:\Program Files\Java\jdk-12.0.1
PATH
%JAVA_HOME%\bin\

jdk安装的版本不要过高,否则后面搭建运行会不成功,我使用的jdk1.8。
②在解压文件中,进入文件bin下,使用cmd运行apollo.cmd create mybroker(mybroker是自己随便取得一个名字)
在这里插入图片描述
③开启appllo服务
第一种方式
在文件夹中,进入mybroker\bin中,运行apollo-broker.cmd run
在这里插入图片描述
这种方式cmd不能关掉,关掉之后,就无法进行访问了。
第二种方式
在文件夹中,进入mybroker\bin中,运行.\apollo-broker-service install,.\apollo-broker-service start
在这里插入图片描述
在计算机管理中,可以找到对应的服务
在这里插入图片描述
在浏览器中输入http://127.0.0.1:61680,进入apollo的登录页面。
在这里插入图片描述
第一次输入Username=admin,Password=password。但是,第二次登陆的时候,就无法再次登录。可以输入https://127.0.0.1:61681,进行再次登录。
自此,基本搭建已经完成。

补充:
这个设置完成后,只能在本机上登录,无法在同一个子网上,用其他PC机登录。
解决方法:
登录打开之后,选择configration下选择apollo.xml文件,修改<host_name>属性为服务器ip,web_admin同步修改,以及tcp节点下,将默认的tcp://0.0.0.0:61613修改为服务器的ip,以供局域网使用。点击保存,即可在局域网内使用服务器的ip登录。

三、使用客户端创建连接

1.下载客户端
https://pan.baidu.com/s/1mi5mdRi
此处使用org.eclipse.paho.ui.app-1.0.2-win32.win32.x86_64 (基于ecplise rpc插件)
2.解压
打开文件夹,点击运行paho应用程序。
3.添加连接,并进行相关设置
在这里插入图片描述
输入用户名和密码
在这里插入图片描述
连接成功后,服务器上会出现如下显示
在这里插入图片描述

说明:
显示的三个信息,分别是建立的三个连接。

四、进行消息发布与订阅

上面创建的三个连接,即表示三个客户端。
客户端1/3:订阅hello主题
在这里插入图片描述
客户端2:发布hello主题
在这里插入图片描述
在客户端2发布hello主题后,客户端1和客户端3就会收到客户端2发送出来的主题中的内容。
在这里插入图片描述

五、小结

通过使用MQTT来实现消息发布与订阅,客户端一旦订阅了某个主题,只要没有断开连接,都会收到对应的主题所发送的消息。从使用的过程,可以了解到MQTT服务过程,采用的是TCP协议进行的通信。总的来说,这个过程要想深刻了解到MQTT协议,还是比较困难,需要查看更多相关资料,才能真正了解MQTT。

六、参考资料

1.MOTT介绍(2)window安装MQTT服务器和client
2.Apollo MQTT在windows上面环境部署与连接测试
3.【MQTT】在Windows下搭建MQTT服务器

猜你喜欢

转载自blog.csdn.net/qq_43279579/article/details/111873008