如何使用Spring Boot實現WebSocket通信

如何使用Spring Boot實現WebSocket通信

大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討如何利用Spring Boot實現WebSocket通信,實現實時的雙向數據傳輸和即時通訊功能。

什么是WebSocket?

WebSocket是一種在單個TCP連接上進行全雙工通信的協議,它使得客戶端和服務器之間的數據交換變得更加簡單和高效。在實時應用程序中,如聊天應用、實時數據展示等,WebSocket能夠提供更快速、更即時的數據傳輸和響應。

在Spring Boot中實現WebSocket

步驟一:添加WebSocket依賴

首先,在pom.xml文件中添加Spring Boot集成WebSocket的依賴:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
步驟二:創建WebSocket處理器

定義一個WebSocket處理器來處理WebSocket連接、消息發送和接收等操作。示例代碼如下:

package cn.juwatech.websocket;import org.springframework.stereotype.Component;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;@Component
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(new MyWebSocketHandler(), "/my-websocket").setAllowedOrigins("*");}}
package cn.juwatech.websocket;import org.springframework.stereotype.Component;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;@Component
public class MyWebSocketHandler extends TextWebSocketHandler {@Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {// 新連接建立時調用System.out.println("WebSocket連接已建立");}@Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {// 收到消息時調用System.out.println("接收到消息:" + message.getPayload());// 處理消息并發送響應session.sendMessage(new TextMessage("收到消息:" + message.getPayload()));}@Overridepublic void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {// 連接關閉時調用System.out.println("WebSocket連接已關閉");}
}
步驟三:編寫前端頁面與WebSocket交互

在前端頁面中使用JavaScript來建立WebSocket連接,并發送和接收消息。示例代碼如下:

<!DOCTYPE html>
<html>
<head><title>WebSocket示例</title><script type="text/javascript">var socket = new WebSocket("ws://localhost:8080/my-websocket");socket.onopen = function() {console.log("WebSocket連接已建立");socket.send("Hello, WebSocket!");};socket.onmessage = function(event) {console.log("接收到消息:" + event.data);};socket.onclose = function(event) {console.log("WebSocket連接已關閉");};</script>
</head>
<body><h1>WebSocket示例</h1><p>查看控制臺輸出來查看WebSocket通信過程。</p>
</body>
</html>
步驟四:部署和測試

部署Spring Boot應用,并在瀏覽器中打開前端頁面,查看WebSocket通信是否正常工作。

應用與實踐

利用Spring Boot實現WebSocket通信,可以為應用程序添加實時的雙向數據傳輸功能,例如在線聊天、實時監控、多人協作等場景。通過WebSocket,用戶可以獲得更即時和互動性強的應用體驗。

結論

通過本文的介紹,您學習了如何在Spring Boot應用中實現WebSocket通信,利用其在實時應用程序中的應用場景和優勢。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39995.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第一周java。2

方法的作用 將重復的代碼包裝起來&#xff0c;寫成方法&#xff0c;提高代碼的復用性。 方法的語法 方法的語法格式如下 : [修飾符] 方法返回值類型 方法名(形參列表) { //由零條到多條可執行性語句組成的方法體return 返回值; } 定義方法語法格式的詳細說明如下&#xf…

模擬 ADC 的前端

ADC 的 SPICE 模擬 反復試驗的方法將信號發送到 ADC 非常耗時&#xff0c;而且可能有效也可能無效。如果轉換器捕獲電壓信息的關鍵時刻模擬輸入引腳不穩定&#xff0c;則無法獲得正確的輸出數據。SPICE 模型允許您執行的步是驗證所有模擬輸入是否穩定&#xff0c;以便沒有錯誤…

嘗試修改蒼穹外賣為”李小羅餐廳“

學習蒼穹外賣后&#xff0c;將其修改為自己所需要的項目&#xff0c;也是對蒼穹外賣項目的加深理解 對項目之間的連接等關系進一步清晰&#xff0c;那么便開始吧 d1_開始修改 修改名字為”李小羅餐廳“ src\views\login\index.vue src\router.ts 結果展示 修改進來之后的展示…

上海站圓滿結束!MongoDB Developer Day深圳站,周六見!

在過去兩個周六的北京和上海 我們見證了兩站熱情高漲的 MongoDB Developer Day&#xff01; 近200位參會開發者相聚專業盛會 經過全天的動手實操和主題研討會 MongoDB技能已是Next Level&#xff01; 最后一站Developer Day即將啟程 期待本周六與各位在深圳相見&#xff0…

【Docker安裝】OpenEuler系統下部署Docker環境

【Docker安裝】OpenEuler系統下部署Docker環境 前言一、本次實踐介紹1.1 本次實踐規劃1.2 本次實踐簡介二、檢查本地環境2.1 檢查操作系統版本2.2 檢查內核版本2.3 檢查yum倉庫三、卸載Docker四、部署Docker環境4.1 配置yum倉庫4.2 檢查可用yum倉庫4.3 安裝Docker4.4 檢查Docke…

js樹形結構遞歸 常用函數

假設有如下樹結構 const treeData [{title: 1,id: 1,key: 1,children: [{title: 1-1,id: 2,key: 2,children: [{title: 1-1-1,id: 3,key: 3,},],},],},{title: 2,id: 2,key: 1,children: [{title: 2-1,id: 4,key: 4,children: [{title: 2-1-1,id: 5,key: 5,},],},],},];根據某…

Python題解Leetcode Hot100之矩陣

1. 矩陣置零 題目描述 給定一個 m x n 的矩陣&#xff0c;如果一個元素為 0 &#xff0c;則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 解題思路 題目要求進行原地更改&#xff0c;也就是不能使用額外的空間&#xff0c;因此我們可以使用第一行的元素來記錄對應的…

Cesium常見設置視角所用到函數

1.左鍵拾取經緯度坐標 const handler new Cesium.ScreenSpaceEventHandler(viewer.canvas)// 監聽鼠標點擊事件handler.setInputAction(function (click) {// 使用pick函數獲取點擊位置的實際位置var cartesian viewer.scene.pickPosition(click.position);if (Cesium.defin…

【LeetCode】十二、遞歸:斐波那契 + 反轉鏈表

文章目錄 1、遞歸2、leetcode509&#xff1a;斐波那契數列3、leetcode206&#xff1a;反轉鏈表4、leetcode344&#xff1a;反轉字符串 1、遞歸 函數自己調用自己 遞歸的4個點&#xff1a; 遞歸的例子&#xff1a;給一個數n&#xff0c;在斐波那契數列中&#xff0c;找到n對應的…

科研與英文學術論文寫作指南——于靜老師課程

看到了一個特別棒的科研與英文學術論文寫作指南&#xff0c;理論框架實例。主講人是中科院信息工程研究所的于靜老師。推薦理由&#xff1a;寫論文和讀論文或者講論文是完全不一樣的&#xff0c;即使現在還沒有發過論文&#xff0c;但是通過于老師的課程&#xff0c;會給后續再…

LSTM水質預測模型實踐

0 引言 隨著水質自動站的普及&#xff0c;監測頻次越來越高&#xff0c;自動監測越來越準確。 水質站點增多&#xff0c;連續的水質監測數據&#xff0c;給水質預測提供更多的訓練基礎。 長短時記憶網絡(LSTM)適用于多變量、連續、自相關的數據預測。 人工神經網絡模型特點為的…

使用requests爬取拉勾網python職位數據

爬蟲目的 本文是想通過爬取拉勾網Python相關崗位數據&#xff0c;簡單梳理Requests和xpath的使用方法。 代碼部分并沒有做封裝&#xff0c;數據請求也比較簡單&#xff0c;所以該項目只是為了熟悉requests爬蟲的基本原理&#xff0c;無法用于穩定的爬蟲項目。 爬蟲工具 這次…

LVS 負載均衡群集

一&#xff1a;LVS群集應用基礎 1.1&#xff1a;概述 1.群集的類型 無論是哪種群集&#xff0c; 都至少包括兩臺節點服務器&#xff0c; 而對外表現為一個整體&#xff0c; 只提供一個訪問入口。根據群集所針對的目標差異&#xff0c; 可分為以下三種類型。 負載均衡群集&a…

使用U盤重裝系統

目錄 一、 制作啟動盤 1. 準備一個U盤和一臺電腦 2. 下載win10安裝包 二、安裝操作系統 1. 插入系統安裝盤 2. 通過進入BIOS界面進入到我們自己制作的啟動盤上 三、安裝成功后進行常規設置 一、 制作啟動盤 1. 準備一個U盤和一臺電腦 注意&#xff1a;提前備份好U盤內的…

jQuery Tooltip 插件使用教程

jQuery Tooltip 插件使用教程 引言 jQuery Tooltip 插件是 jQuery UI 套件的一部分,它為網頁元素添加了交互式的提示框功能。通過這個插件,開發者可以輕松地為鏈接、按鈕、圖片等元素添加自定義的提示信息,從而增強用戶的交互體驗。本文將詳細介紹如何使用 jQuery Tooltip…

JDK1.8下載、安裝與配置完整圖文2024最新教程

一、報錯 運行Pycharm時&#xff0c;報錯No JVM installation found. Please install a JDK.If you already have a JDK installed, define a JAVA_HOME variable in Computer >System Properties > System Settings > Environment Variables. 首先可以檢查是否已安裝…

【C語言】qsort()函數詳解:能給萬物排序的神奇函數

&#x1f984;個人主頁:修修修也 &#x1f38f;所屬專欄:C語言 ??操作環境:Visual Studio 2022 目錄 一.qsort()函數的基本信息及功能 二.常見的排序算法及冒泡排序 三.逐一解讀qsort()函數的參數及其原理 1.void* base 2.size_t num 3.size_t size 4.int (*compar)(c…

2024西安國際儲能產業博覽會將于12月5日開幕!

2024西部國際儲能產業博覽會 同期舉辦&#xff1a;2024西部國際氫能源及燃料電池產業博覽會 2024年12月5-7日 西安國際會展中心 規劃展會規模&#xff1a; 50,000 ㎡ 450 60000人次 20場 展區面積 預邀展商 專業觀眾 行業…

節水增效,蜂窩物聯智能灌溉助力農業升級!

智能灌溉的優勢主要體現在以下幾個方面&#xff1a; 1. 提高效率&#xff1a;智能灌溉可以根據作物生長的不同階段和環境條件自動調整灌溉時間和水量&#xff0c;減少人工干預的頻率和時間&#xff0c;提高了灌溉效率。 2. 節約水資源&#xff1a;智能灌溉可以根據土壤濕度和…

Python爬蟲實戰案例——王者榮耀皮膚抓取

大家好&#xff0c;我是你們的老朋友——南楓&#xff0c;今天我們一起來學習一下該如何抓取大家經常玩的游戲——王者榮耀里面的所有英雄的皮膚。 老規矩&#xff0c;直接上代碼&#xff1a; 導入我們需要使用到的&#xff0c;也是唯一用到的庫&#xff1a; 我們要抓取皮膚其…