Created
July 24, 2018 02:33
-
-
Save kba977/b01173101003217432f1acad2ccc3282 to your computer and use it in GitHub Desktop.
websocket
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RestController | |
public class MainController { | |
@Autowired | |
private WebSocket webSocket; | |
@GetMapping("/testWebSocket") | |
public String testWebSocket() { | |
webSocket.sendMessage("有新的订单!"); | |
return "ok"; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@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