SpringCloudGateway转发WebSocket请求
1、WebSocket
-
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>
-
配置类 WebSocketConfig
@Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } }
-
业务类 WebSocketServer
@ServerEndpoint("/websocket/{username}") @Component public class WebSocketServer { /** 记录当前在线连接数,保证线程安全 */ private static AtomicInteger onlineNum = new AtomicInteger(); /** 存放 WebSocketServer 对象 */ private static ConcurrentHashMap<String, Session> sessionPools = new ConcurrentHashMap<>(); public void sendMessage(Session session, String message) throws IOException { session.getBasicRemote().sendText(message); } public void sendInfo(String userName, String message) throws IOException { Session session = sessionPools.get(userName); sendMessage(session, message); } @OnOpen public void