91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

两当县| 桑植县| 莱芜市| 西平县| 宿迁市| 桐梓县| 涟水县| 翁牛特旗| 资源县| 彭山县| 宣威市| 蒲城县| 策勒县| 香河县| 涿鹿县| 罗平县| 平原县| 临夏市| 辽宁省| 隆回县| 广东省| 玉溪市| 攀枝花市| 论坛| 西吉县| 同心县| 高台县| 工布江达县| 商城县| 南昌县| 图们市| 乡城县| 商河县| 龙游县| 涞水县| 镇远县| 万载县| 泾源县| 六安市| 镇康县| 晋州市|