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

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

網(wǎng)站建設(shè)培訓(xùn)南寧短視頻seo排名加盟

網(wǎng)站建設(shè)培訓(xùn)南寧,短視頻seo排名加盟,網(wǎng)站建設(shè)先學(xué)什么,怎么用視頻做網(wǎng)站首頁原文地址:xupengboo WebSocket WebSocket 是 HTML5 開始提供的一種在單個 TCP 連接上進(jìn)行全雙工通訊的協(xié)議。 在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸?!?article class="baidu_pl">

原文地址:xupengboo

WebSocket

WebSocket 是 HTML5 開始提供的一種在單個 TCP 連接上進(jìn)行全雙工通訊的協(xié)議

在 WebSocket API 中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就直接可以創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。

傳統(tǒng)的一些網(wǎng)站推送技術(shù),使用的技術(shù)是Ajax輪詢。這種傳統(tǒng)的模式帶來很明顯的缺點(diǎn),即瀏覽器需要不斷的向服務(wù)器發(fā)出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的數(shù)據(jù)可能只是很小的一部分,顯然這樣會浪費(fèi)很多的帶寬等資源。HTML5 定義的 WebSocket 協(xié)議,能更好的節(jié)省服務(wù)器資源和帶寬,并且能夠更實(shí)時地進(jìn)行通訊。

image-20240912092015069

聊天室案例,index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>WebSocket 聊天室</title>
</head>
<body><h1>WebSocket 聊天室</h1><div><input id="messageInput" type="text" placeholder="輸入消息..." /><button onclick="sendMessage()">發(fā)送</button></div><div><h2>聊天記錄:</h2><pre id="chatLog"></pre></div><script>// 連接到 WebSocket 服務(wù)器const ws = new WebSocket('ws://localhost:8080/chat');// 監(jiān)聽 WebSocket 打開事件ws.onopen = function() {console.log('WebSocket 連接已打開');};// 監(jiān)聽 WebSocket 消息事件ws.onmessage = function(event) {console.log('收到服務(wù)器消息:', event.data);document.getElementById('chatLog').textContent += event.data + '\n';};// 發(fā)送消息到服務(wù)器function sendMessage() {const message = document.getElementById('messageInput').value;ws.send(message);}// 監(jiān)聽 WebSocket 錯誤事件ws.onerror = function(error) {console.error('WebSocket 錯誤:', error);};// 監(jiān)聽 WebSocket 關(guān)閉事件ws.onclose = function() {console.log('WebSocket 連接已關(guān)閉');};</script>
</body>
</html>

通過 SpringBoot 實(shí)現(xiàn)后臺,WebSocket 通信服務(wù):

  1. 引入 WebSocket 依賴:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
  1. 定義一個 WebSocket Handler 繼承類:
package com.itholmes.demo.websocket;import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;import java.util.Collections;
import java.util.HashSet;
import java.util.Set;/*** @Author xupengboo* @Date 2024/9/12 9:25* @Describe*/
public class ChatWebSocketHandler extends TextWebSocketHandler {// 用于存儲所有客戶端連接private final Set<WebSocketSession> sessions = Collections.synchronizedSet(new HashSet<>());// 當(dāng)客戶端連接時觸發(fā)@Overridepublic void afterConnectionEstablished(WebSocketSession session) throws Exception {sessions.add(session);System.out.println("新連接:" + session.getId());}// 當(dāng)收到客戶端消息時觸發(fā)@Overrideprotected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {String payload = message.getPayload();System.out.println("收到消息:" + payload);// 將消息廣播給所有連接的客戶端for (WebSocketSession webSocketSession : sessions) {if (webSocketSession.isOpen()) {webSocketSession.sendMessage(new TextMessage("客戶端 " + session.getId() + " 說:" + payload));}}}// 當(dāng)連接關(guān)閉時觸發(fā)@Overridepublic void afterConnectionClosed(WebSocketSession session, org.springframework.web.socket.CloseStatus status) throws Exception {sessions.remove(session);System.out.println("連接關(guān)閉:" + session.getId());}}
  1. 配置 WebSocketConfigurer 類:
package com.itholmes.demo.websocket;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;/*** @Author xupengboo* @Date 2024/9/12 9:26* @Describe*/
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {// 注冊 WebSocket 處理器和路徑registry.addHandler(new ChatWebSocketHandler(), "/chat").setAllowedOrigins("*");  // 允許跨域}}
  1. 啟動服務(wù),配合前端測試即可。
http://aloenet.com.cn/news/43167.html

相關(guān)文章:

  • 軟件下載類型網(wǎng)站怎么做廣告推送平臺
  • 電子商務(wù)旅游網(wǎng)站建設(shè)策劃書廣州網(wǎng)絡(luò)營銷推廣公司
  • 問卷調(diào)查網(wǎng)站JAVA怎么做網(wǎng)站搭建步驟
  • 客戶開發(fā)軟件工具西安優(yōu)化seo
  • 昆明北京網(wǎng)站建設(shè)做網(wǎng)站的軟件叫什么
  • 婚紗網(wǎng)站建設(shè) 最開始百度百度
  • 個人公眾號做網(wǎng)站網(wǎng)店推廣培訓(xùn)
  • 套網(wǎng)站模板軟件wix網(wǎng)站制作
  • 西寧網(wǎng)站建設(shè)的公司哪家好免費(fèi)二級域名建站
  • 百度wap網(wǎng)站建設(shè)cdq百度指數(shù)
  • 惠州企業(yè)自助建站自己怎么創(chuàng)建網(wǎng)站
  • 臨沂購買模板建站網(wǎng)頁首頁設(shè)計(jì)圖片
  • 深圳教育網(wǎng)站設(shè)計(jì)公司鄭州seo顧問培訓(xùn)
  • java做網(wǎng)站沒有php好嗎360瀏覽器網(wǎng)頁版入口
  • 網(wǎng)站查詢信息愛站網(wǎng)關(guān)鍵字挖掘
  • wordpress建設(shè)網(wǎng)站石家莊全網(wǎng)seo
  • 美國網(wǎng)站服務(wù)器營銷活動推廣策劃
  • 做網(wǎng)站seo優(yōu)化線上營銷策略都有哪些
  • 西安手機(jī)定制網(wǎng)站建設(shè)電商網(wǎng)站平臺有哪些
  • 廣州品牌網(wǎng)站建設(shè)seo網(wǎng)站推廣與優(yōu)化方案
  • 中企動力科技股份有限公司網(wǎng)站官網(wǎng)2020十大網(wǎng)絡(luò)熱詞
  • 新手引導(dǎo)做的差的網(wǎng)站免費(fèi)建站軟件
  • 動態(tài)網(wǎng)站完整版百度pc網(wǎng)頁版
  • ??诜慨a(chǎn)網(wǎng)站建設(shè)最近發(fā)生的熱點(diǎn)事件
  • 廣州市公司網(wǎng)站建設(shè)公司在線培訓(xùn)app
  • 網(wǎng)站 建設(shè)需求上海aso蘋果關(guān)鍵詞優(yōu)化
  • 網(wǎng)站域名 設(shè)置快速網(wǎng)站seo效果
  • 怎樣做網(wǎng)站首頁圖片變換seo研究中心培訓(xùn)機(jī)構(gòu)
  • 做俄羅斯外貿(mào)的網(wǎng)站設(shè)計(jì)網(wǎng)址域名ip查詢
  • 潮汕網(wǎng)站建設(shè)antnw網(wǎng)頁設(shè)計(jì)需要學(xué)什么