国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

一站式做網(wǎng)站哪家強寧波網(wǎng)站推廣哪家公司好

一站式做網(wǎng)站哪家強,寧波網(wǎng)站推廣哪家公司好,wordpress首頁文章數(shù),嘉興海鹽縣城鄉(xiāng)建設(shè)局網(wǎng)站大綱 最小可行案例依賴開啟Websocket,綁定路由邏輯類 測試參考資料 WebSocket是一種先進(jìn)的網(wǎng)絡(luò)通信協(xié)議,它允許在單個TCP連接上進(jìn)行全雙工通信,即數(shù)據(jù)可以在同一時間雙向流動。WebSocket由IETF標(biāo)準(zhǔn)化為RFC 6455,并且已被W3C定義為…

大綱

  • 最小可行案例
    • 依賴
    • 開啟Websocket,綁定路由
    • 邏輯類
  • 測試
  • 參考資料

WebSocket是一種先進(jìn)的網(wǎng)絡(luò)通信協(xié)議,它允許在單個TCP連接上進(jìn)行全雙工通信,即數(shù)據(jù)可以在同一時間雙向流動。WebSocket由IETF標(biāo)準(zhǔn)化為RFC 6455,并且已被W3C定義為JavaScript API的標(biāo)準(zhǔn),成為現(xiàn)代瀏覽器的重要特性之一。
WebSocket的引入徹底改變了傳統(tǒng)的Web應(yīng)用交互模式。在WebSocket之前,Web應(yīng)用通常使用HTTP協(xié)議進(jìn)行通信,但由于HTTP是一個無狀態(tài)的、請求-響應(yīng)模式的協(xié)議,它無法滿足實時、雙向通信的需求。WebSocket的出現(xiàn),解決了這一問題,它使得Web應(yīng)用能夠像桌面應(yīng)用一樣,實現(xiàn)低延遲、高頻率的數(shù)據(jù)交換。
WebSocket的核心特性包括:

  • 全雙工通信:WebSocket允許客戶端和服務(wù)器之間進(jìn)行雙向通信,數(shù)據(jù)可以在同一時間雙向流動。這意味著服務(wù)器可以主動向客戶端推送數(shù)據(jù),而無需等待客戶端發(fā)起請求。
  • 長連接:WebSocket連接一旦建立,就會保持打開狀態(tài),直到顯式關(guān)閉。這種長連接特性減少了頻繁建立和銷毀連接的開銷,提高了通信效率。
  • 輕量級頭部:WebSocket數(shù)據(jù)幀采用緊湊的二進(jìn)制格式,減少了不必要的頭部信息,提高了數(shù)據(jù)傳輸效率。
  • 實時性:由于數(shù)據(jù)可以直接在已建立的連接上傳輸,WebSocket能夠?qū)崿F(xiàn)實時或接近實時的數(shù)據(jù)交互。
  • 跨域支持:與HTTP一樣,WebSocket也允許跨域通信,只需服務(wù)器端設(shè)置相應(yīng)的CORS(跨源資源共享)頭即可。

通過本系列學(xué)習(xí),我們會縮減《RabbitMQ實踐——搭建多人聊天服務(wù)》一文中的接口,在一個連接上實現(xiàn)消息的收發(fā)。

最小可行案例

依賴

在pom.xml中新增

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

開啟Websocket,綁定路由

src\main\java\com\nyctlc\front\config\WebSocketConfig.java

package com.nyctlc.front.config;import org.springframework.context.annotation.Configuration;
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 com.nyctlc.front.handler.WebSocketHandler;@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(new WebSocketHandler(), "/websocket").setAllowedOrigins("*");}
}

@EnableWebSocket 是 Spring Boot 中的一個注解,它主要用于啟用對 WebSocket 的支持。
我們通過WebSocketHandlerRegistry的addHandler方法,將/websocket接口的處理邏輯交由自定義的WebSocketHandler類處理;同時使用setAllowedOrigins來表示接受所有的域過來的請求。

邏輯類

src\main\java\com\nyctlc\front\handler\WebSocketHandler.java

package com.nyctlc.front.handler;import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;import java.io.IOException;
import java.util.HashSet;
import java.util.Set;public class WebSocketHandler extends TextWebSocketHandler {private static Set<WebSocketSession> sessions = new HashSet<>();@Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {sessions.add(session);}@Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {for (WebSocketSession webSocketSession : sessions) {if (webSocketSession.isOpen()) {try {webSocketSession.sendMessage(message);} catch (IOException e) {e.printStackTrace();}}}}
}

當(dāng)連接建立后,afterConnectionEstablished會被調(diào)用,我們將連接保存到sessions集合中。這一步主要是為了后續(xù)給各個連接發(fā)送請求用。
handleTextMessage表示收到了請求,然后會遍歷所有連接,并會對處于Open狀態(tài)的連接發(fā)送收到的消息。這兒就是收發(fā)放在一起了。

測試

我在網(wǎng)頁中用JS做了各種測試,會發(fā)現(xiàn)遇到很多問題。后來索性采用Postman來測試,親測可行且穩(wěn)定。
在這里插入圖片描述

填入我們綁定的地址:ws://localhost:8080/websocket
在這里插入圖片描述
下圖可見連接上了
在這里插入圖片描述
我們發(fā)送一條hello
在這里插入圖片描述
可以看到接受到了服務(wù)端的反饋
在這里插入圖片描述

參考資料

  • https://medium.com/@ropelife/real-time-communication-with-websocket-in-spring-boot-using-webflux-5d9fbb36a0ab
http://m.aloenet.com.cn/news/40941.html

相關(guān)文章:

  • 山西省政府網(wǎng)站建設(shè)北京建站
  • 音樂介紹網(wǎng)站怎么做的商業(yè)軟文代寫
  • wordpress 獲取縮略圖路徑全網(wǎng)關(guān)鍵詞優(yōu)化公司哪家好
  • 真正免費的網(wǎng)站建站平臺排名中山seo
  • 直播的網(wǎng)站開發(fā)中國最新領(lǐng)導(dǎo)班子
  • 黃頁 網(wǎng)站模板微信營銷的方法7種
  • nba網(wǎng)站開發(fā)畢業(yè)論文廣州seo外包
  • 哪個網(wǎng)站可以免費看小說不收費百度網(wǎng)絡(luò)營銷推廣
  • 寧波網(wǎng)站建設(shè)模板下載免費宣傳軟文模板
  • 萬戶網(wǎng)絡(luò)網(wǎng)站建設(shè)軟文營銷的經(jīng)典案例
  • 網(wǎng)站建設(shè)方案書 備案最近發(fā)生的熱點新聞事件
  • 大型門戶網(wǎng)站建設(shè)一般多少錢北京云無限優(yōu)化
  • 武漢建設(shè)局網(wǎng)站南寧百度seo排名公司
  • 深圳網(wǎng)站設(shè)計興田德潤放心百度關(guān)鍵詞優(yōu)化多少錢一年
  • 環(huán)球網(wǎng)今日疫情消息網(wǎng)站優(yōu)化招聘
  • 網(wǎng)站建設(shè)與管理教案電商數(shù)據(jù)統(tǒng)計網(wǎng)站
  • 做網(wǎng)站的公司術(shù)語國際新聞最新消息中國
  • wordpress網(wǎng)站搭建教程視頻山東濰坊疫情最新消息
  • 長沙網(wǎng)站制作電話百度seo新算法
  • 做抖音風(fēng)的網(wǎng)站怎么優(yōu)化關(guān)鍵詞排名優(yōu)化
  • 專門做家教的網(wǎng)站營銷網(wǎng)站搭建
  • 怎么做谷歌這樣的網(wǎng)站網(wǎng)站如何做seo排名
  • 免費推廣網(wǎng)站大全網(wǎng)如何做線上銷售和推廣
  • 如何為網(wǎng)站做優(yōu)化培訓(xùn)機構(gòu)招生方案
  • 網(wǎng)站開發(fā)創(chuàng)新點網(wǎng)站推廣優(yōu)化方案
  • 做logo網(wǎng)站的公司做網(wǎng)站找哪家好
  • 怎么用dw做響應(yīng)式網(wǎng)站seo教程免費分享
  • 保定企業(yè)自助建站搜索關(guān)鍵詞優(yōu)化排名
  • 做網(wǎng)頁設(shè)計可以參考哪些網(wǎng)站長沙網(wǎng)站外包公司
  • 東莞網(wǎng)站排名優(yōu)化報價電腦培訓(xùn)學(xué)校課程