Spring boot 集成websocket的实现方式

Spring boot 集成websocket的实现方式

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

maven依赖

		<dependency>
            <groupId>org.java-websocket</groupId>
            <artifactId>Java-WebSocket</artifactId>
            <version>1.4.1</version>
        </dependency>

配置文件config

import org.java_websocket.client.WebSocketClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

@Configuration
public class WebSocketConfig {
   

	//客户端
    @Bean
    public WebSocketClient webSocketClient() {
   
        try {
   
            MyWebSocketClient webSocketClient = MyWebSocketClient.getInstance();
            webSocketClient.connect();
            return webSocketClient;
        } catch (Exception e) {
   
            e.printStackTrace();
        }
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个简单的 Spring Boot 集成 WebSocket 实现对话功能的 Demo,你可以参考一下。 首先,我们需要在 pom.xml 文件中添加 WebSocketSpring Web 依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` 接下来,我们需要创建一个 WebSocket 配置类,用于注册 WebSocket 终端点和处理器: ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(new ChatWebSocketHandler(), "/chat").setAllowedOrigins("*"); } } ``` 在上面的代码中,我们注册了一个名为 ChatWebSocketHandler 的 WebSocket 处理器,并将其映射到路径 /chat。同时,我们通过 setAllowedOrigins 方法允许来自任何来源的 WebSocket 连接。 接下来,我们需要定义 WebSocket 处理器 ChatWebSocketHandler: ```java public class ChatWebSocketHandler extends TextWebSocketHandler { private final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>(); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { for (WebSocketSession s : sessions) { if (s.isOpen()) { s.sendMessage(message); } } } } ``` 在上面的代码中,我们定义了一个名为 sessions 的列表,用于存储所有 WebSocket 连接的会话。在 afterConnectionEstablished 方法中,我们将新连接的会话添加到 sessions 列表中。在 handleTextMessage 方法中,我们将接收到的消息广播给所有连接的会话。 最后,我们需要创建一个简单的 HTML 页面,用于测试 WebSocket 连接: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>WebSocket Test</title> </head> <body> <input type="text" id="message"> <button onclick="send()">Send</button> <div id="output"></div> <script> var socket = new WebSocket("ws://" + window.location.hostname + ":8080/chat"); socket.onmessage = function(event) { var output = document.getElementById("output"); output.innerHTML += event.data + "<br>"; }; function send() { var message = document.getElementById("message").value; socket.send(message); } </script> </body> </html> ``` 在上面的代码中,我们使用 JavaScript 创建一个 WebSocket 连接,并将其连接到 ChatWebSocketHandler 处理器。我们还创建了一个文本框和一个按钮,用于发送消息。每当接收到一条消息时,我们将其添加到名为 output 的 div 中。 这就是一个简单的 Spring Boot 集成 WebSocket 实现对话功能的 Demo。你可以使用浏览器打开 HTML 页面,测试 WebSocket 连接。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值