引入pom依赖
<!--websocket连接需要使用到的包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
@EnableWebSocket
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter(){
return new ServerEndpointExporter();
}
}
WebSockt消息处理及推送
import lombok.Data;
import org.springframework.stereotype.Component;
import javax.websocket.OnOpen;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import javax.websocket.*;
import java.io.IOException;
import java.util.concurrent.CopyOnWriteArraySet;
@Component
@Data
@ServerEndpoint(value = "/websocket/{client}}")
public class WebSocket {
private static int onlineCount = 0;
private static CopyOnWriteArraySet<WebSocket> webSocketSet = new CopyOnWriteArraySet<WebSocket>();
private Session session;
@OnOpen
public void onOpen(Session session, EndpointConfig config){
System.out.println(session + "建立了连接");
System.out.println(session.getRequestURI());
this.session = session;
webSocketSet.add(this);
}
@OnClose
public void onClose(Session session) {
System.out.println(session + "断开了连接");
webSocketSet.remove(this);
}
@OnMessage
public String onMessage(String message, Session session){
System.out.println(message);
return "{\"taskId\":\"d4as5d4a56sd4\",\"data\":\"码流文件\",\"type\":\"3\"}";
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("发生错误!");
}
public void sendMessage(String message) throws IOException {
this.session.getBasicRemote().sendText(message);
}
public static void sendInfo(String message) throws IOException {
for (WebSocket item : webSocketSet) {
try {
item.sendMessage(message);
} catch (IOException e) {
continue;
}
}
}
}
测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/091d9bf9e3ba4e69821005c9621ffac4.png)