SpringBoot-WebSocket
阿新 • • 發佈:2018-12-25
SpringBoot-WebSocket簡單使用
引入依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
核心程式碼
/** * * webSocket服務端 */ @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("連線數:{}", webSocketSet.size()); } @OnClose public void onClose() { webSocketSet.remove(this); log.info("連線數:{}", webSocketSet.size()); } @OnMessage public void onMessage(String message) { log.info("收到客戶端發來的訊息:{}", message); } public void sendMessage(String message) { log.info("廣播訊息:{}", message); for (WebSocket webSocket: webSocketSet) { try { webSocket.session.getBasicRemote().sendText(message); } catch (Exception e) { e.printStackTrace(); } } } }
頁面程式碼示例
<script> var websocket = null; if('WebSocket' in window) { websocket = new WebSocket('ws://192.168.186.108:8080/webSocket'); }else { alert('該瀏覽器不支援websocket'); } websocket.onopen = function (event) { console.log('建立連線'); } websocket.onclose = function (event) { console.log('連線關閉'); } websocket.onmessage = function (event) { console.log('收到訊息:' + event.data); } websocket.onerror = function () { console.log('websocket通訊發生錯誤!'); } window.onbeforeunload = function () { websocket.close(); } </script>