MQTT简介之十二--Ubuntu下Mosquitto 分组发消息测试用例

1、单播消息推送


    方案:为一个客户端建立一个单独的唯一标识,从服务端进行推送;
    用例:① 在订阅端(使用mosquitto_sub 命令行也可以使用mqtt.fx模拟器)上,开两个client,并以各自的客户端序列号做为定阅的主题;                   

Xshell 终端1: mosquitto_sub -h localhost -t "test/1111"

Xshell 终端2: mosquitto_sub -h localhost -t "test/1112"

               ② 在发布端(使用mosquitto_sub 命令行也可以使用mqtt.fx模拟器),发布其中一个客户端序列号,内容为“Hello序列号 MQTT2”,只有相应客户端能收到,别的客户端收不到;

                 

 Xshell终端3:mosquitto_pub -h localhost -t "test/1111" -m "Hello1111 MQTT2"

    结果:只有Xshell 终端1:收到发布的消息

             

2、分组消息推送


      方案:为设备组生成一个唯一标识,在两个客户端订阅此标识;(但如果实际应用中组是经常变化,且数据不多时,建议不要生成标识符,直接遍历设备列表一个一个发送即可)
      用例:① 定义一个组,并为这个组生成一个唯一标识“groupid”;                      

                 ② 在客户端上,开三个client,其中两个定阅主题“groupid”,一个不定阅;                     

                    

Xshell 终端1: mosquitto_sub -h localhost -t "test/groupid/1111"

Xshell 终端2: mosquitto_sub -h localhost -t "test/groupid/1111"

Xshell 终端3: mosquitto_sub -h localhost -t "test/groupid/1112"

                 ③ 在服务端发布主题“groupid”,内容为“ group message ”,两个已订阅的客户端都可以收到此信息,没订阅的收不到些信息;

                    

Xshell 终端4: mosquitto_pub -h localhost -t "test/groupid/1111" -m "MQTT group message"


       结果:

                   两个已订阅的客户端都可以收到此信息,没订阅的收不到些信息;

                    

  3、广播消息推送       

     方案: 为所有客户端订阅一个“all/#”的主题,但需要发送所有消息时,以此为发布主题即可;    
     用例:   ① 在客户端上,开两个client,全部定阅“all/#”的主题; 

Xshell 终端1: mosquitto_sub -h localhost -t "all/#"

Xshell 终端2: mosquitto_sub -h localhost -t "all/#"

Xshell 终端3: mosquitto_sub -h localhost -t "test/groupid/1112"

                   ② 在服务端发布主题“all”,内容为“MQTT2 all message ”,两个已订阅的客户端都可以收到此信息;   

Xshell 终端4: mosquitto_pub -h localhost -t "all" -m "MQTT all message"

                   ③ 在服务端发布主题“all/device”,内容为“ MQTT2 all device message ”,两个已订阅的客户端都可以收到此信息;

Xshell 终端4:  mosquitto_pub -h localhost -t "all/device" -m "MQTT all device message"

                结果:

                         两个已订阅的客户端都可以收到此信息;

  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值