亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何使用WebSocket

發布時間:2021-09-28 14:39:31 來源:億速云 閱讀:178 作者:小新 欄目:編程語言

這篇文章主要介紹了SpringBoot如何使用WebSocket,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

WebSocket 是 HTML5 開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議。

WebSocket 使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端主動向客戶端推送數據。在 WebSocket API 中,瀏覽器和服務器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,并進行雙向數據傳輸。

在 WebSocket API 中,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。

java怎么寫

配置Bean

@Bean  public ServerEndpointExporter serverEndpointExporter() {    return new ServerEndpointExporter();  }

java鏈接

/** * token為前端連接時的標識,后端根據此token維護用戶與webSocket的綁定 */@Component@ServerEndpoint("/webSocket/{token}")public class WebSocket {  private Session session;  private static ConcurrentHashMap<String, WebSocket> webSocketMap = new ConcurrentHashMap<>();  @OnOpen  public void onOpen(@PathParam(value = "token") String token, Session session) {    this.session = session;    webSocketMap.put(token, this);    System.out.println("new connect:" + token + ". total :" + webSocketMap.size());  }  @OnClose  public void onClose(@PathParam(value = "token") String token) {    webSocketMap.remove(token);    System.out.println("disconnect:" + token + ", total:" + webSocketMap.size());  }  @OnMessage  public void onMessage(String message) {    System.out.println("get message: " + message);  }  public void sendMessage(String message) {    // 根據業務邏輯,找到token指向的webSocket    WebSocket webSocket = webSocketMap.get(String.valueOf(message.charAt(0)));    // 找不到返回    if (webSocket == null) {      return;    }    try {      webSocket.session.getBasicRemote().sendText(message);    } catch (IOException e) {      e.printStackTrace();    }  }}

前端怎么寫

/**   * WebSocket客戶端   *   * 使用說明:   * 1、WebSocket客戶端通過回調函數來接收服務端消息。例如:webSocket.onmessage   * 2、WebSocket客戶端通過send方法來發送消息給服務端。例如:webSocket.send();   */  function getWebSocket() {    /**     * WebSocket客戶端 PS:URL開頭表示WebSocket協議 中間是域名端口 結尾是服務端映射地址     */    var webSocket = new WebSocket(/*[[${webSocketUrl}]]*/ 'ws://localhost:8080/webSocket/2');    /**     * 當服務端打開連接     */    webSocket.onopen = function (event) {      console.log('WebSocket打開連接');    };    /**     * 當服務端發來消息:1.廣播消息 2.更新在線人數     */    webSocket.onmessage = function (event) {      console.log('WebSocket收到消息:%c' + event.data, 'color:green');    };    /**     * 關閉連接     */    webSocket.onclose = function (event) {      console.log('WebSocket關閉連接');    };    /**     * 通信失敗     */    webSocket.onerror = function (event) {      console.log('WebSocket發生異常');    };    return webSocket;  }

感謝你能夠認真閱讀完這篇文章,希望小編分享的“SpringBoot如何使用WebSocket”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峻县| 兴山县| 砀山县| 台湾省| 孟州市| 宣汉县| 曲靖市| 呈贡县| 英德市| 平和县| 龙岩市| 定远县| 扎兰屯市| 上虞市| 桦甸市| 聂荣县| 鹤山市| 云和县| 武隆县| 泰宁县| 潜山县| 雷州市| 大方县| 陵水| 辽阳县| 老河口市| 杂多县| 连南| 积石山| 鱼台县| 文化| 金寨县| 老河口市| 韶山市| 北票市| 枞阳县| 宝坻区| 黔西| 神农架林区| 鄄城县| 白城市|