Activemq删除队列-Java操作Mqtt

项目里需要使用代码删除mqtt队列的操作,在Java里操作MqttClient类的时候只看到了 订阅与取消,并没有看到关于删除队列的方法,所以只能自己写了,考虑过使用Activemq命令删除但是不好用,后来选择通过mqtt管理端进行删除一系列的操作


教程开始

package com.tengnat.dwork.common.utils;

import com.tengnat.dwork.BaseTest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Value;

/**
 * Created by SkinApe on 2022/1/13.
 */
public class MqttDelete extends BaseTest {

    //mqtt管理端秘钥 Basic YWRtaW46YWRtaW4=
    @Value("${project.mqtt.authorization}")
    String authorization;


    @Test
    public void delete(){

        /**
         *
         * 下面每个接口Headers必须值:authorization:Basic YWRtaW46YWRtaW4=
         *
         *
         * 获取权限的token
         * http://192.168.1.47:8161/admin/secret.jsp
         *
         * 上面接口拿到的token:5f3a356b-7d05-40b4-a61b-aa6bcd27ef3c
         *
         *
         * 拼接删除队列的URL
         *
         * http://192.168.1.47:8161/admin/deleteDestination.action?JMSDestination=队列名/话题名&JMSDestinationType=队列/话题&secret=上面接口拿到的token
         *
         */



    }

}

重点:
1.获取登陆权限的key:登陆之后随便请求一个接口 拿到这个值(这个是固定的,只要不修改密码,一般mqtt管理服务都是内网,所以安全性没那么高)
程序员之家


2.获取请求接口必要参数token:通过访问secret.jsp 这个文件需要放到管理端目录,路径在admin下

 创建一个secret.jsp文件 里面内容:${sessionScope["secret"]}

http://192.168.1.47:8161/admin/secret.jsp

程序员之家


3.拼接删除队列的URL

http://192.168.1.47:8161/admin/deleteDestination.action?JMSDestination=队列名/话题名&JMSDestinationType=队列/话题&secret=上面接口拿到的token
         *




还可以大胆想象就是 我们还可以操作控制台其它的操作,比如删除所有队列,查看队列里的信息

程序员之家
请先登录后发表评论
  • 最新评论
  • 总共0条评论