SpringBoot + WebSocket 超简单案例实现,后台发送前台接收 -- 柚子真好吃

SpringBoot + WebSocket 超简单案例实现,后台发送前台接收 -- 柚子真好吃

一、导入依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>

二、springboot后端代码

  1. 首先编写配置WebSocketConfig来配置ServerEndpointExporter Bean,代码如下。

    @Configuration
    public class WebSocketConfig {
    
        @Bean
        public ServerEndpointExporter serverEndpointExporter() {
            return new ServerEndpointExporter();
        }
    
    }
    
  2. 编写WebSocket服务端,代码如下。

    @ServerEndpoint("/websocket/{id}")
    @Component
    public class WebSocketServer {
     
        private static ConcurrentHashMap<String,WebSocketServer> webSocketMap = new ConcurrentHashMap<>();
    
        private Session session;
    
        @OnOpen
        public void onOpen(Session session,@PathParam("id") String id) {
            this.session = session;
           
            webSocketMap.put(id,this);
           
            try {
                sendMessage("连接成功");
            } catch (IOException e) {
            }
        }
    
        public void sendMessage(String message) throws IOException {
            this.session.getBasicRemote().sendText(message);
        }
    
    
        public static void sendInfo(String message) throws IOException {
            webSocketMap.get("xx").sendMessage(message);
        }
    
    }
    
  3. 最后完善请求调用发送即可,代码如下。

    @RestController
    public class WebSocketController {
    
        @RequestMapping("/send")
        public void send(){
            try {
                WebSocketServer.sendInfo("人生难得一只鸡","xx");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    

三、Html前端接收代码

  1. 简易代码如下。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<script src="js/jquery-3.5.1.js"></script>
    	</head>
    	<body>
    		<div id="message"></div>
    	</body>
    	<script>
    		
    		let webSocket = null;
    		
    		if('WebSocket' in window){
    			webSocket = new WebSocket("ws://localhost:59438/dxg/websocket/xx")
    		}
    		
    		webSocket.onopen = function(){
    			$("#message").html('连接成功!');
    		}
    		
    		webSocket.onmessage = function(event){
    			$("#message").html(event.data);
    		}
    		
    	</script>
    </html>
    
  2. 地址为后端配置的路径

     server.port=59438
     server.servlet.context-path=/dxg
    

四、实现效果

  1. 当页面刷新时,效果如下。
    在这里插入图片描述
  2. 访问controller地址,效果如下。
    在这里插入图片描述
    地址:http://localhost:59438/dxg/send

在这里插入图片描述

参考:https://zhengkai.blog.csdn.net/article/details/80275084

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是小金毛

可怜可怜孩子吧

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

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

打赏作者

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

抵扣说明:

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

余额充值