MQTT是轻量级基于代理的发布/订阅的消息传输协议.

有三种消息发布服务质量:

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

mosquitto是一个开源的broker,并且支持MQTTv3.1,支持客户端的验证

下载地址http://mosquitto.org/download/

安装mosquitto很简单,下载的软件中都有说明,在xp下安装运行的时候可能会提示缺少某个dll下载这个dll即可。

在这个使用的过程中遇到个问题:设置qos的质量问题(都在在xp的cmd窗口中进行的)

1、首先到mosquitto的安装目录下,启动mosquitto服务

2、开启2个cmd窗口一个运行:mosquitto_pub.exe -q 2 -t name -m “hello”(发布主题‘name’)记为发布窗口

另一个窗口运行:mosquitto_sub.exe -q 2 -t bing -t name(订阅主题‘name’)记为订阅窗口

首先开启的是发布主题的窗口,在订阅主题的窗口中能看到‘hello’的消息;

3、测试mosquitto的服务质量,现在已经启动了2个窗口而且qos的值都为2;

a、停止订阅主题的服务,在发布窗口中运行:mosquitto_pub.exe -q 2 -t name -m “hello2”

b、在订阅窗口中运行:mosquitto_sub.exe -q 2 -t bing -t name;并没有出现预期中的‘hello2’

在这个过程中没有修改mosquitto.conf文件;不知道什么地方出问题了;请大牛们指教