当前位置: 首页 > article >正文

使用Websocket进行前后端实时通信

1、引入jar,spring-websocket-starter

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

2、配置websocket config

import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
 
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(myHandler(), "/myEndpoint").setAllowedOrigins("*");
    }
 
    public WebSocketHandler myHandler() {
        return new MyWebSocketHandler();
    }
}

3、使用实现websocket handler

import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
 
public class MyWebSocketHandler extends TextWebSocketHandler {
    @Override
    public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        System.out.println("Received: " + message.getPayload());
        session.sendMessage(new TextMessage("Hello from server"));
    }
}

4、前端使用

<script>
    var socket = new WebSocket("ws://localhost:8080/myEndpoint");
    socket.onmessage = function(event) {
        console.log('Received from server:', event.data);
    };
    socket.onopen = function() {
        socket.send('Hello Server');
    };
</script>


http://www.kler.cn/a/510112.html

相关文章:

  • 考前64天 学习笔记 - 形成“习惯体系”进行最小启动
  • ASP .NET Core 学习(.NET9)配置接口访问路由
  • 利用 LNMP 实现 WordPress 站点搭建
  • 数据结构题目 课时6
  • vue项目配置多语言
  • Spring Web MVC综合案例
  • 彻底理解JVM类加载机制
  • 企业可以通过以下方式利用全星QMS软件提高质量管理的效率和准确性
  • PCL 计算点云的最大距离【2025最新版】
  • 蓝桥杯训练—芯片测试
  • 安装httpd
  • CentOS 7.9下安装Docker
  • WEB渗透技术研究与安全防御
  • 乘联会:1月汽车零售预计175万辆 环比暴跌33.6%
  • 构建安全防线:基于视频AI的煤矿管理系统架构创新成果展示
  • MobileNet:轻量级卷积神经网络引领移动设备图像识别新时代
  • 广东打造低空经济发展平台,CES Asia 2025助力科技腾飞
  • 国内微电子(集成电路)领域重点高校的特色与优势
  • 【scrapy】信号量—扩展随笔
  • 利用@WebMvcTest测试Spring MVC应用
  • MySQL、HBase、ES的特点和区别
  • 初学stm32 --- flash模仿eeprom
  • AI-Talk开发板之替换唤醒词
  • K8S中Pod控制器之Deployment(Deploy)控制器
  • Prompt-人工智能领域的核心技术与创新理念
  • 设置 Git 默认推送不需要输入账号和密码【Ubuntu】