网站的页脚,面料 做网站,seo合作代理,昆明网络推广公司报价文章目录 一、概述1、简介 二、 使用1、引包2、配置处理器3、前端测试 一、概述
1、简介
简介略#xff0c;附上官方文档#xff0c;spring5和spring6的官方文档内容大致是一样的#xff1a; https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framewo… 文章目录 一、概述1、简介 二、 使用1、引包2、配置处理器3、前端测试 一、概述
1、简介
简介略附上官方文档spring5和spring6的官方文档内容大致是一样的 https://docs.spring.io/spring-framework/docs/5.2.25.RELEASE/spring-framework-reference/web.html#websocket https://docs.spring.io/spring-framework/reference/6.1/web/websocket.html
二、 使用
1、引包
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-websocket/artifactId
/dependency2、配置处理器
创建WebSocket服务器可以实现WebSocketHandler或者更有可能的是扩展TextWebSocketHandler或者BinaryWebSocketHandler。以下示例使用TextWebSocketHandler
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;import java.util.concurrent.CopyOnWriteArrayList;public class MyHandler extends TextWebSocketHandler {// 可以定义一个存储所有session的容器private final CopyOnWriteArrayListWebSocketSession sessions new CopyOnWriteArrayList();Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {// 建立请求sessions.add(session);System.out.println(Connection established: session.getId());}Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {// 收到消息String payload message.getPayload();System.out.println(Received message: payload);// 发送回复消息for (WebSocketSession s : sessions) {s.sendMessage(new TextMessage(Server received: payload));}}Overridepublic void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {// 关闭链接sessions.remove(session);System.out.println(Connection closed: session.getId());}}import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;Configuration
EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {/*** 将前面的WebSocket处理程序映射到特定的URL*/Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(myHandler(), /myHandler)//.addInterceptors(new HttpSessionHandshakeInterceptor()) // 可以拦截session属性.setAllowedOrigins(*); // 跨域;}Beanpublic WebSocketHandler myHandler() {return new MyHandler();}}3、前端测试
测试地址https://tool.gitapp.cn/websocket/。
连接ws://127.0.0.1:8080/myHandler发送消息进行测试一下。
使用起来非常的方便