中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

剑阁县| 望都县| 额济纳旗| 伊宁县| 滨海县| 南雄市| 习水县| 武汉市| 唐海县| 甘洛县| 贵州省| 孙吴县| 昌吉市| 德昌县| 旌德县| 宁南县| 宝坻区| 弋阳县| 临桂县| 宣化县| 丰镇市| 宝清县| 寿阳县| 开远市| 焦作市| 长乐市| 中超| 于田县| 年辖:市辖区| 凌云县| 潞城市| 布尔津县| 米易县| 姜堰市| 龙州县| 同江市| 什邡市| 威宁| 翼城县| 苏尼特左旗| 天等县|