当前位置:   article > 正文

Springboot 集成websocket

Springboot 集成websocket

webSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信--浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。

http协议和websocket协议对比

http是短连接

websocket是长连接

http通信是单向的,基于请求响应模式

websocket支持双向通信

http和websocket底层都是tcp连接

介绍

英语场景

视频弹幕 页面并没有刷新,但是弹幕源源不断

网页聊天

体育实况更新

第一步:导入依赖

打开你的Spring Boot项目,你需要在 pom.xml  文件中引入WebSocket相关的依赖。

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-websocket</artifactId>
  5. </dependency>
  6. </dependencies>

第二步:配置WebSocket

Spring Boot 自带了对WebSocket的支持,你不需要太多手动配置,但如果需要自定义端点或者配置其他细节,可以创建一个配置类。

  1. @Configuration
  2. @EnableWebSocketMessageBroker
  3. public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
  4. @Override
  5. public void configureMessageBroker(MessageBrokerRegistry config) {
  6. // 配置消息代理,这里指定了"/app"前缀的频道将由控制器处理
  7. config.enableSimpleBroker("/topic");
  8. // "/app"前缀的消息将转发到带有@MessageMapping的方法
  9. config.setApplicationDestinationPrefixes("/app");
  10. }
  11. @Override
  12. public void registerStompEndpoints(StompEndpointRegistry registry) {
  13. // 注册WebSocket的入口点,并启用SockJS以兼容更多浏览器
  14. registry.addEndpoint("/ws").withSockJS();
  15. }
  16. }

第三步:编写WebSocket Server端

创建一个WebSocket的消息处理器类,该类里包含的方法会处理客户端发来的消息和广播消息。

  1. @Controller
  2. public class MyWebSocketController {
  3. @MessageMapping("/chat")
  4. @SendTo("/topic/messages")
  5. public ChatMessage sendMessage(ChatMessage message) throws Exception {
  6. // 这里可以处理消息,例如保存到数据库、转换格式等
  7. // 然后返回一个消息对象,它会被发送到所有订阅了/topic/messages频道的客户端
  8. return new ChatMessage(message.getFrom(), message.getText(), LocalDateTime.now());
  9. }
  10. }

第四步:客户端连接与消息发送接收

在客户端(通常是HTML+JavaScript页面),使用WebSocket库如SockJS和StompJS来连接到WebSocket服务器并发送和接收消息。

  1. <script src="https://cdn.jsdelivr.net/npm/sockjs-client@1/dist/sockjs.min.js"></script>
  2. <script src="https://cdn.jsdelivr.net/npm/stompjs@2.3.3/dist/stomp.min.js"></script>
  3. <script>
  4. var socket = new SockJS('/ws');
  5. var stompClient = Stomp.over(socket);
  6. stompClient.connect({}, function(frame) {
  7. console.log('Connected: ' + frame);
  8. stompClient.subscribe('/topic/messages', function(messageOutput) {
  9. // 接收服务器推过来的消息并显示在页面上
  10. var message = JSON.parse(messageOutput.body);
  11. displayChatMessage(message);
  12. });
  13. // 发送消息到服务器
  14. $('#sendMessage').click(function () {
  15. var from = $('#from').val();
  16. var text = $('#text').val();
  17. stompClient.send("/app/chat", {}, JSON.stringify({from: from, text: text}));
  18. });
  19. });
  20. </script>

以上就是一个非常基础的Spring Boot集成WebSocket的教程,涵盖了从服务器端配置到客户端消息处理的基本流程。实际应用中,你可能还需要处理更多的细节,比如用户身份验证、断线重连等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/382229?site
推荐阅读
相关标签
  

闽ICP备14008679号