添加依赖
< dependency>
< groupId> org.springframework.boot</ groupId>
< artifactId> spring-boot-starter-websocket</ artifactId>
</ dependency>
添加配置类
java">@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter ( ) {
return new ServerEndpointExporter ( ) ;
}
}
添加服务类
java">@Component
@ServerEndpoint ( "/ws/{clientId}" )
public class WebSocketServer {
private static Map < String , Session > sessionMap = new HashMap < > ( ) ;
@OnOpen
public void onOpen ( Session session, @PathParam ( "clientId" ) String clientId) {
System . err. println ( "客户端:" + clientId + "建立连结" ) ;
sessionMap. put ( clientId, session) ;
}
@OnClose
public void onClose ( @PathParam ( "clientId" ) String clientId) {
sessionMap. remove ( clientId) ;
}
@OnMessage
public void onMessage ( String message, @PathParam ( "clientId" ) String clientId) {
System . err. println ( "收到来自客户端" + clientId + "的消息:" + message) ;
}
public void sendMessage ( String message) {
Collection < Session > sessions = sessionMap. values ( ) ;
for ( Session session : sessions) {
try {
session. getBasicRemote ( ) . sendText ( message) ;
} catch ( Exception e) {
e. printStackTrace ( ) ;
}
}
}
}