Skip to content

Instantly share code, notes, and snippets.

@kba977
Created July 24, 2018 02:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kba977/b01173101003217432f1acad2ccc3282 to your computer and use it in GitHub Desktop.
Save kba977/b01173101003217432f1acad2ccc3282 to your computer and use it in GitHub Desktop.
websocket
@RestController
public class MainController {
@Autowired
private WebSocket webSocket;
@GetMapping("/testWebSocket")
public String testWebSocket() {
webSocket.sendMessage("有新的订单!");
return "ok";
}
}
@Component
@ServerEndpoint("/webSocket")
@Slf4j
public class WebSocket {
private Session session;
private static CopyOnWriteArraySet<WebSocket> webSocketSet = new CopyOnWriteArraySet<>();
@OnOpen
public void onOpen(Session session) {
this.session = session;
webSocketSet.add(this);
log.info("[webSocket消息] 有新的连接, 总数: {}", webSocketSet.size());
}
@OnClose
public void onClose() {
webSocketSet.remove(this);
log.info("[webSocket消息] 连接断开, 总数: {}", webSocketSet.size());
}
@OnMessage
public void onMessage(String message) {
log.info("[webSocket消息] 收到客户端发来的消息: {}", message);
}
public void sendMessage(String message) {
for (WebSocket webSocket: webSocketSet) {
log.info("[webSocket消息] 广播消息, message={}", message);
try {
webSocket.session.getBasicRemote().sendText(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment