mqtt+ springboot +websocket 的实现

今天上班看了一下boss招聘,发现要做物联网工程师,差不多都要求会mqtt和websocket。

一开始了解websocket是因为mqtt吧,我的后台从发布者那边获得到消息,然后我就很正常想要把数据传到前端,让前端去渲染(妈的,这边前端还是我)。但是我发现这是客户端主动向服务端发请求,这该咋发啊,毕竟我是写好controller接口,让前端调用,这肯定不是主动的。百度了才知道,http的缺点是只能让服务端主动联系客户端,这相当于什么,你不能主动联系渣男啊!最后就发现websocket!客户端可以主动找服务端,服务端也能主动找客户端,就……就很公平。

那就简单的思路,就是后台通过mqtt订阅某个设备,要是设备有数据就推给我的后台,然后通过websocket主动传给前端。

先写前端

后端代码

    public void sendMessage(String message){
        for (WebSocket webSocket:writeArraySet){
            log.info("[websocket消息]广播消息,message={}",message);
            try {
                webSocket.session.getBasicRemote().sendText(message);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

这边用的try/catch,发送信息报错没那么重要,就直接私下扔掉好了。这边学到了,我之前都忘记了。

这样相当于写好了吧,就我就可以在mqtt那个回调消息的方法里面注入这个websocket。这边了解到这个websocket介于controller和service。别说我,我看b站的。

这边写了一个websocket,正常你只要在这边@Autowired一下注入websocket进去就好了,但是mqtt奇怪一点的,这边写就会报空指针异常,看了博客之后,学到了一招。

用这种方法注入就可以了,换成class样子注入。

现在就是可以实现了后端主动给前端发信息。

那个是mqttfx的软件,充当发布者,前端就收到了相对应的话题和消息,但是我想做个弹框,bootstrap的包一直导不对,一直红红的,什么时候我的基金也能红红红。

明天要去解决一下。

 

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Spring Boot 是一个用于创建独立、基于 Spring 的应用程序的框架,它简化了 Spring 的配置和部署过程。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布订阅模式的消息传输协议,广泛应用于物联网领域。WebSocket是一种全双工通信协议,可以在浏览器和服务器之间建立持久性的连接。 在Spring Boot中,可以通过整合 Spring Integration 和 Eclipse Paho(MQTT Java 客户端)来实现 MQTT 推送。首先,需要将 Paho MQTT 依赖添加到项目的 Maven 或 Gradle 构建文件中。然后,通过编写相应的 Java 代码,在 Spring Boot 中配置 MQTT 的连接和订阅信息。可以使用 @EnableMqtt 注解来启用 MQTT 功能,并通过配置文件指定 MQTT 的连接参数和订阅主题。最后,使用 @MqttListener 注解定义一个消息监听器,用于接收和处理 MQTT 推送的消息。 而要实现 WebSocket 的推送功能,可以通过整合 Spring WebSocket 和 Spring Security 实现。首先,在 Spring Boot 中配置 WebSocket 的端点,并编写相应的处理器类来处理 WebSocket 的连接和消息。可以使用 @EnableWebSocket 和 @Configuration 注解启用 WebSocket 功能,并将自定义的 WebSocketConfig 类添加到 Spring Boot 的配置中。接着,使用 @Component 注解将 WebSocket 处理器类注册为 Spring 的 Bean。最后,通过编写前端代码,在浏览器中建立 WebSocket 连接,并发送和接收消息。 综上所述,通过整合 Spring Boot、MQTTWebSocket 技术,可以实现 MQTTWebSocket 的推送功能。可以通过配置文件和编写相应的 Java 和前端代码来完成相应的配置和接口开发。这样就可以实现在 Spring Boot 应用中利用 MQTTWebSocket 实现消息的推送和接收。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值