springboot框架下的实时消息推送

本文介绍了在SpringBoot应用中如何利用WebSocket实现数据的实时推送。首先,通过修改pom文件引入相关依赖,然后创建配置文件和WebSocket服务类。接着,前端页面需加入接收推送信息的代码段,确保连接成功。最后,后台创建推送类,可以使用定时任务从数据库获取数据或通过Redis的阻塞队列监听数据变化,实现实时更新。提供的示例使用了Redis的阻塞队列方法,当队列有新数据时,前端页面会自动刷新并展示。文章还附带了前端所需JS文件的下载链接。
摘要由CSDN通过智能技术生成

功能实现:在得到新数据后以最快的速度推送到前台。(springboot框架)

0.修改pom文件 加入需要的jar包

      
       	<dependency>
			<groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-websocket</artifactId>
		</dependency>
		<!-- 处理数据用 跟推送无关 -->
		<dependency>
		    <groupId>com.alibaba</groupId>
		    <artifactId>fastjson</artifactId>
		    <version>1.2.47</version>
		</dependency>

1.新建config配置文件(注意目录问题,最好是根目录下)

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
/**
 * @Description: socket配置类,往 spring 容器中注入ServerEndpointExporter实例
 */
@Configuration
public class WebSocketConfig {
 
    @Bean
    public ServerEndpointExporter serverEndpointExporter(){
        return new ServerEndpointExporter();
    }
}

2.新建websocket服务类

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;

import org.springframework.stereotype.Component;
 
/**
 * @Description: WebSocket服务端代码,包含接收消息,推送消息等接口
 * userName是接收的参数
 */
@Component
@ServerEndpoint(value = "/ws/{userName}")
public class WebSocketServer {
	static Map<Session, String> map = new HashMap<Session, String>();     //存储系统的用户信息
	 /**
    * @param session
    */
   @OnOpen
   public void OnOpen(@PathParam("userName")String userName,Session session) {
   	System.out
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值