首页 > 其他分享 >三 docker安装rabbitMQ之springboot集成stomp,实现前端主动刷新

三 docker安装rabbitMQ之springboot集成stomp,实现前端主动刷新

时间:2022-11-01 15:23:00浏览次数:41  
标签:springboot stomp springframework rabbitMQ org import config annotation

一  场景分析

对于一些需要数据同步的场景中,例如后台数据有变化,需要程序主动刷新前端界面的数据显示,这样能提供更好的用户数据交互,能第一时间了解到资源信息的变化,而不是每次主动让用户去手动刷新。

针对前端自动刷新的场景实现可以有几个方式:

1. 采用websocket,采用长连接的方式,JS的timer定时器刷新,问题是当同时在线的用户比较多时,服务器的资源占用压力会非常大。

2. 采用rabbitmq提供的stomp的方式,进行广播的方式,前端订阅当前的queue的方式实现。由于Queue的方式,可以很大程度减少服务器的压力,以及不需要客户过多的功能耦合。具体使用到的知识参见:

https://spring.io/guides/gs/messaging-stomp-websocket/

二   集成步骤

WebSocketMessageBrokerConfig.java 

package com.wycms.framework.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

@Configuration
//https://spring.io/guides/gs/messaging-stomp-websocket/
// @EnableWebSocketMessageBroker 注解用于开启使用 STOMP 协议来传输基于代理(MessageBroker)的消息,这时候控制器(controller)
// 开始支持@MessageMapping,就像是使用 @requestMapping 一样。
@EnableWebSocketMessageBroker
@Primary
public class WebSocketMessageBrokerConfig implements WebSocketMessageBrokerConfigurer {
    @Autowired
    WebSocketConfig webSocketConfig;

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        //注册一个名为 /endpointNasus 的 Stomp 节点(endpoint),并指定使用 SockJS 协议。
        registry.addEndpoint("/endpointRefresh").withSockJS();
        //注册一个名为 /endpointChat 的 Stomp 节点(endpoint),并指定使用 SockJS 协议。
        //registry.addEndpoint("/endpointChat").withSockJS();
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        // 广播式配置名为 /nasus 消息代理 , 这个消息代理必须和 controller 中的 @SendTo 配置的地址前缀一样或者全匹配
        // 点对点增加一个 /queue 消息代理
        registry.enableSimpleBroker("/refresh/getResponse");
    }
}

 

标签:springboot,stomp,springframework,rabbitMQ,org,import,config,annotation
From: https://www.cnblogs.com/freewsf/p/16847818.html

相关文章

  • Springboot 自定义注解
    @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceMyAnnotation{Stringkey();}Annotation型定义为 @in......
  • springboot 请求参数 在swagger中 时间戳(Timestamp)被不断下拉展示
     在项目中,请求参数是Timestamp类型的在swagger显示如下: 对应的参数:@ApiModelProperty(value="查询时间-开始yyyy-MM-dd")privateTimestampstartDate;修改成:@A......
  • SpringBoot静态资源访问
    分享知识传递快乐  默认静态资源映射规则SpringBoot默认将/所有访问映射到以下目录:/**classpath:/staticclasspath:/publicclasspath:/resourcesclasspath:/META-INF......
  • SpringBoot笔记:Hello World
    SpringBoot简化了Spring应用的初始框架搭建和开发过程,利用SpringBoot框架可以快速的进行Spring应用的开发,SpringBoot具有以下特性:能够快速创建基于Spring的应用程序。提......
  • RabbitMq消息的百分百投递
    RabbitMq消息的百分百投递​ 在RabbitMq作为消息中间件的时候,存在消息丢失的情况;在大部分业务中是不允许的;尤其是在使用中间件来保证数据的最终一致性时,消息丢失则无......
  • RabbitMq
    RabbitMq什么是MQ:是一种存放消息的队列;还是一种跨进程的通讯机制,用于两个微服务之间的消息通讯;消息中间件作用于分布式系统之间的通讯且必须是异步处理的场景提......
  • Springboot导出word,动态填充表格数据
    原文链接:https://blog.csdn.net/qq_23126581/article/details/125446459背景本文将给大家带来如何导入数据到word文档中,固定传值和动态制作表格传值等。依赖:<!-......
  • kafka服务端设置用户和密码登录及springboot访问实现
    1、先安装zookeeper,不会的可以去查一下。2、解压并放到目录下,改名tarzxvfkafka_2.12-2.4.0.tgz-C/datamvkafka_2.12-2.4.0kafka3、修改kafka配置文件server.......
  • Springboot整合mybatis-plus-2增删改查
    文章目录​​一、插入​​​​1.主键id配置自增的​​​​2.时间等自动填充​​​​1.直接在数据字段设置即可​​​​2.使用ioc反射原理​​​​二、改(update)​​​​三、......
  • Springboot 整合 thymeleaf-1
    文章目录​​thymeleaf百叶香​​​​一、添加依赖​​​​1.创建项目的时候引入依赖​​​​2.直接在pom里面添加依赖​​​​二、建立页面html并添加命名空间​​​​三......