import java.io.IOException;
import java.net.http.WebSocket;
import java.util.concurrent.CopyOnWriteArraySet;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.springframework.stereotype.Component;
import groovy.util.logging.Slf4j;
@Component
@ServerEndpoint("/mywebsocket")
//@Slf4j
public class Websocketcontroller {
private Session session;
private static CopyOnWriteArraySet webSocketset=new CopyOnWriteArraySet();
@OnOpen
public void onOpen(Session session) {
this.session=session;
webSocketset.add(this);
System.out.println(webSocketset.size());
}
@OnClose
public void onClose() {
webSocketset.remove(this);
System.out.println(webSocketset.size());
}
@OnMessage
public void onMessage(String msg) {
System.out.println("shoudao msg"+msg);
}
public void sendMessage(String msg) {
String msg1="ok";
for(Object seb:webSocketset) {
try {
((Session) seb).getBasicRemote().sendText(msg1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package com.example.demo.websocket;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Component
public class Websocketconfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}