SpringBoot 使用 EMQX

一、SpringBoot服务器端

1. 在centos搭建 EMQX服务

2. 创建API密码

3. 在SpringBoot 的yml中添加mqqt的配置

#配置
emqx:
  ip: 47.109.49.176
  port: 18083
  api: xxxxxxxx      (自己的api)
  secret: xxxxxxxxx  (自己的secret)

4. 因为服务端在推送消息给 EMQX时,需要对应的api标识和secret权限, 就先定义一个类,通过ConfigurationProperties注解获取配置文件中的属性

@Data
@Component
@ConfigurationProperties("emqx")
public class EmqConfig {
    private String ip;
    private int port;
    private String api;
    private String secret;
}

5. EMQX工具类


@Component
public class EmqApi {
    @Autowired
    private EmqConfig emqConfig;             //EMOX的实体类,可以直接获取配置文件的属性值
    private final String apiVer = "/api/v5"; //使用http实现推送api的版本


    //基础请求地址 http://172.0.0.1:8080/api/v5
    private String getBaeUrl() {
        return "http://" + emqConfig.getIp() + ":" + emqConfig.getPort() + apiVer;
    }


    /*服务端发起请求:
    (1)拼接完成的路径: http://172.0.0.1:8080/api/v5/public (public表示推送一条消息)
    (2)设置请求方式:get、post、delete、put
    (3)设置权限:用户名、密码
    * */
    private HttpRequest getRequest(String url) {
        HttpRequest request = HttpRequest.of(getBaeUrl() + url);
        request.setMethod(Method.POST);
        request.basicAuth(emqConfig.getApi(), emqConfig.getSecret());
        return request;
    }


    /*
    将请求和封装放在一起(已经重载,可以传字符串,也可以传对象)
    * */
    private HttpResponse getResponse(String url, String body) {
        return getRequest(url).body(body).execute();
    }
    private HttpResponse getResponse(String url, Dict dict) {
        return getResponse(url, JSONUtil.toJsonStr(dict));
    }


    /*发送消息的方法 */
    public String publish(String topic, String payload) {
        Dict dict = Dict.create();
        dict.set("topic", topic);     //订阅频道标识
        dict.set("payload", payload); //消息内容
        dict.set("qos", 2);           //消息仅传送一次。不会重复、不会丢失
        HttpResponse response = getResponse("/publish", dict);
        return response.body();
    }
    /*发送消息的方法 */
    public String publish(String topic, Map map) {
        return publish(topic, JSONUtil.toJsonStr(map));
    }
}

 二、前端uniapp 后面补

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tengyuxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值