一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是WebSocket協(xié)議?

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2023-08-25 08:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

通常,打開某個(gè)網(wǎng)頁,我們每點(diǎn)擊一次網(wǎng)頁上的某個(gè)選項(xiàng),前端就會(huì)發(fā)送一次HTTP請(qǐng)求,網(wǎng)站返回一次HTTP響應(yīng)。這種由客戶端主動(dòng)請(qǐng)求,服務(wù)器響應(yīng)的方式滿足大部分網(wǎng)頁的功能場(chǎng)景。但這種情況下,服務(wù)器不會(huì)主動(dòng)給客戶端發(fā)消息。而類似網(wǎng)頁游戲這樣的場(chǎng)景,是需要客戶端和服務(wù)器之間互相主動(dòng)發(fā)大量數(shù)據(jù)的。
8a7d782e-42dd-11ee-8e12-92fbcf53809c.png

WebSocket是什么?

WebSocket 是一種用于在單個(gè) TCP 連接上進(jìn)行全雙工通信的網(wǎng)絡(luò)協(xié)議。它使用類似于 HTTP 的握手來建立連接,然后使用單獨(dú)的持久連接來進(jìn)行通信。這種方式使得 WebSocket 可以在瀏覽器和服務(wù)器之間進(jìn)行實(shí)時(shí)通信,而不需要多次發(fā)送 HTTP 請(qǐng)求來獲取數(shù)據(jù)。這意味著連接是持久的,它一直保持打開,直到有一方主動(dòng)關(guān)閉連接。這使得 WebSocket 非常適合用于實(shí)時(shí)應(yīng)用程序,因?yàn)樗恍枰粩嗟亟⒑完P(guān)閉連接。
WebSocket怎樣建立連接?WebSocket 連接通常在客戶端(例如瀏覽器)和服務(wù)器之間建立??蛻舳税l(fā)送一個(gè) HTTP 請(qǐng)求來建立連接,然后服務(wù)器返回一個(gè)確認(rèn)消息,表示已建立連接。之后,客戶端和服務(wù)器可以通過這個(gè)連接進(jìn)行雙向通信??蛻舳丝梢韵蚍?wù)器發(fā)送消息,服務(wù)器也可以向客戶端發(fā)送消息。消息可以是任意的字節(jié)數(shù)組,并且可以使用任意的格式進(jìn)行編碼。8a9276e8-42dd-11ee-8e12-92fbcf53809c.jpg

建立Websocket連接

WebSocket 是一種必不可少的客戶端—服務(wù)器通信工具,需要充分了解其實(shí)用性并避免使用場(chǎng)景才能從其最大潛力中獲益。

WebSocket的實(shí)際用途

最常見的用途是在實(shí)時(shí)應(yīng)用程序開發(fā)中,它有助于在客戶端持續(xù)顯示數(shù)據(jù)。由于后端服務(wù)器不斷發(fā)回此數(shù)據(jù),WebSocket 允許在已打開的連接中不間斷地推送或傳輸此數(shù)據(jù),使此類數(shù)據(jù)傳輸更快,并利用了應(yīng)用程序的性能。
聊天應(yīng)用程序開發(fā)人員在一次性交換、發(fā)布、廣播消息等操作中調(diào)用 WebSocket 。由于使用相同的 WebSocket 連接來發(fā)送或接收消息,因此通信變得簡(jiǎn)單、輕量、快捷。在進(jìn)行游戲應(yīng)用程序開發(fā)的同時(shí),服務(wù)器必須不間斷地接收數(shù)據(jù),而不要求刷新 UI。WebSocket在不影響游戲應(yīng)用程序 UI 的情況下實(shí)現(xiàn)了這一目標(biāo)。

從上述幾個(gè)示例中,我們大概知道了在什么情況下不太適合使用,例如數(shù)據(jù)交互周期很長,甚至幾小時(shí)一次的情況或只需要一次性處理數(shù)據(jù)時(shí),不應(yīng)采用 WebSocket協(xié)議。在這些情況下,使用 HTTP 協(xié)議是一個(gè)明智的選擇。由于 HTTP 和 WebSocket 都用于應(yīng)用程序通信,因此人們常常感到困惑,很難從這兩者中選擇一個(gè)。

WebSocket 與 HTTP 的選擇

WebSocket 是一種框架雙向協(xié)議。與此相反,HTTP 是一種單向協(xié)議,作用于 TCP 協(xié)議之上。由于WebSocket協(xié)議能夠支持不間斷的數(shù)據(jù)傳輸,因此主要用于實(shí)時(shí)應(yīng)用程序開發(fā)。HTTP 是無狀態(tài)的,用于開發(fā)RESTful和 SOAP 應(yīng)用程序。SOAP 仍然可以使用 HTTP 來實(shí)現(xiàn),但是 REST 被廣泛傳播和使用。
8ac08010-42dd-11ee-8e12-92fbcf53809c.png

在 WebSocket 中,通信發(fā)生在兩端,這使其成為更快的協(xié)議。在 HTTP 中,連接是在一端建立的,這使得它比 WebSocket 有點(diǎn)慢。WebSocket 使用統(tǒng)一的 TCP 連接,需要一方終止連接。在它發(fā)生之前,連接保持活動(dòng)狀態(tài)。HTTP 需要為單獨(dú)的請(qǐng)求建立不同的連接。請(qǐng)求完成后,連接會(huì)自動(dòng)斷開。 8add712a-42dd-11ee-8e12-92fbcf53809c.jpg

HTTP 長輪詢

現(xiàn)今對(duì)網(wǎng)絡(luò)數(shù)據(jù)安全性也存在更多需求,WebSocket 連接使用的是標(biāo)準(zhǔn)的 TCP 連接,因此它可以在任何支持 TCP 的網(wǎng)絡(luò)上使用。它使用的是 ws:// 和 wss:// 協(xié)議前綴,這些前綴可以與任何域名或 IP 地址結(jié)合使用。WebSocket 連接是可以加密的,可以使用 TLS(Transport Layer Security,傳輸層安全)協(xié)議來保護(hù)數(shù)據(jù)的安全。這種加密連接使用的是 wss:// 協(xié)議前綴,與不加密的連接使用的 ws:// 協(xié)議前綴相區(qū)別。除此之外,WebSocket 還支持安全握手協(xié)議(Secure Handshake Protocol),這使得它可以在瀏覽器和服務(wù)器之間進(jìn)行加密通信??偟膩碚f,WebSocket 具有較高的安全性,可以保護(hù)數(shù)據(jù)的安全。另外,需要注意的是,WebSocket不是基于HTTP的新協(xié)議,因?yàn)閃ebSocket只有在建立連接時(shí)才用到了HTTP,升級(jí)完成之后就跟HTTP不再有任何關(guān)系。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1286

    瀏覽量

    71057
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    523

    瀏覽量

    32602
  • 網(wǎng)頁
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    19607
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    AWTK-WEB 快速入門(6) - JS WebSocket 應(yīng)用程序

    WebSocket可以實(shí)現(xiàn)雙向通信,適合實(shí)時(shí)通信場(chǎng)景。本文介紹一下使用Javacript語言開發(fā)AWTK-WEB應(yīng)用程序,并用WebSocket與服務(wù)器通訊。用AWTKDesigner新建一個(gè)應(yīng)用程
    的頭像 發(fā)表于 02-26 11:42 ?323次閱讀
    AWTK-WEB 快速入門(6) - JS <b class='flag-5'>WebSocket</b> 應(yīng)用程序

    移遠(yuǎn)通信AI玩具整體解決方案全面升級(jí):融合火山引擎RTC大模型,打造實(shí)時(shí)交互新體驗(yàn)

    一體,可為玩具的智能化升級(jí)提供從硬件、算法到平臺(tái)的一站式服務(wù)。 移遠(yuǎn)通信AI玩具整體解決方案率先支持火山引擎豆包RTC(實(shí)時(shí)音視頻)大模型,現(xiàn)已全面具備市場(chǎng)交付能力。與基于webSocket協(xié)議的AI玩具方案相比,基于RTC協(xié)議
    發(fā)表于 02-21 09:50 ?364次閱讀
    移遠(yuǎn)通信AI玩具整體解決方案全面升級(jí):融合火山引擎RTC大模型,打造實(shí)時(shí)交互新體驗(yàn)

    移遠(yuǎn)通信AI玩具整體解決方案全面升級(jí):融合火山引擎RTC大模型,打造實(shí)時(shí)交互新體驗(yàn)

    、算法到平臺(tái)的一站式服務(wù)。移遠(yuǎn)通信AI玩具整體解決方案率先支持火山引擎豆包RTC(實(shí)時(shí)音視頻)大模型,現(xiàn)已全面具備市場(chǎng)交付能力。與基于webSocket協(xié)議的AI
    的頭像 發(fā)表于 02-20 19:06 ?515次閱讀
    移遠(yuǎn)通信AI玩具整體解決方案全面升級(jí):融合火山引擎RTC大模型,打造實(shí)時(shí)交互新體驗(yàn)

    AWTK-WEB 快速入門(5) - C 語言 WebSocket 應(yīng)用程序

    導(dǎo)讀WebSocket可以實(shí)現(xiàn)雙向通信,適合實(shí)時(shí)通信場(chǎng)景。本文介紹一下使用C語言開發(fā)AWTK-WEB應(yīng)用程序,并用WebSocket與服務(wù)器通訊。用AWTKDesigner新建一個(gè)應(yīng)用程序先安裝
    的頭像 發(fā)表于 02-19 11:49 ?419次閱讀
    AWTK-WEB 快速入門(5) - C 語言 <b class='flag-5'>WebSocket</b> 應(yīng)用程序

    hart協(xié)議與Modbus協(xié)議的比較

    在工業(yè)自動(dòng)化和過程控制領(lǐng)域,通信協(xié)議是連接各種設(shè)備和系統(tǒng)的關(guān)鍵技術(shù)。HART協(xié)議和Modbus協(xié)議是兩種非常流行的現(xiàn)場(chǎng)總線協(xié)議,它們各自有著獨(dú)特的特點(diǎn)和應(yīng)用場(chǎng)景。 HART
    的頭像 發(fā)表于 12-02 09:37 ?1790次閱讀

    講解什么是取電協(xié)議芯片及快充協(xié)議的種類

    隨著快充技術(shù)的不斷發(fā)展,很多便攜電子設(shè)備也都紛紛應(yīng)用上了快充協(xié)議,市面上常用的協(xié)議分為兩種,一種 是公用協(xié)議,一款是私有協(xié)議,公用協(xié)議有?P
    的頭像 發(fā)表于 11-27 11:18 ?1100次閱讀
    講解什么是取電<b class='flag-5'>協(xié)議</b>芯片及快充<b class='flag-5'>協(xié)議</b>的種類

    dap協(xié)議與傳統(tǒng)協(xié)議的區(qū)別 dap協(xié)議的工作原理詳解

    DAP(Distributed Application Protocol)是一種分布式應(yīng)用協(xié)議,旨在為分布式應(yīng)用提供一個(gè)去中心化的網(wǎng)絡(luò)環(huán)境。與傳統(tǒng)協(xié)議相比,DAP協(xié)議具有一些獨(dú)特的特性和工作原理
    的頭像 發(fā)表于 11-22 15:40 ?1272次閱讀

    socket 和 WebSocket 的區(qū)別

    在現(xiàn)代網(wǎng)絡(luò)通信中,Socket和WebSocket是兩種常見的通信協(xié)議。它們?cè)趯?shí)現(xiàn)網(wǎng)絡(luò)通信、數(shù)據(jù)傳輸?shù)确矫姘l(fā)揮著重要作用。然而,它們之間存在一些關(guān)鍵的區(qū)別。 1. Socket(套接字) 1.1
    的頭像 發(fā)表于 11-12 14:33 ?1376次閱讀

    socket與WebSocket的區(qū)別與聯(lián)系

    在現(xiàn)代網(wǎng)絡(luò)通信中,Socket和WebSocket是兩種常見的通信協(xié)議。它們?cè)诰W(wǎng)絡(luò)編程中扮演著重要的角色,但它們之間存在一些關(guān)鍵的區(qū)別和聯(lián)系。 1. 定義和基本概念 Socket(套接字
    的頭像 發(fā)表于 11-04 09:19 ?1187次閱讀

    不可錯(cuò)過的Air780E之WebSocket應(yīng)用示范!小白篇

    咋們今天說的Air780E之WebSocket應(yīng)用示范針對(duì)小白絕對(duì)是不可以錯(cuò)過的示例。
    的頭像 發(fā)表于 11-03 20:16 ?1321次閱讀
    不可錯(cuò)過的Air780E之<b class='flag-5'>WebSocket</b>應(yīng)用示范!小白篇

    華納云:探討可用于降低服務(wù)器網(wǎng)絡(luò)延遲的先進(jìn)的網(wǎng)絡(luò)協(xié)議

    、QUIC和WebSocket,分析它們?nèi)绾卧诓煌瑘?chǎng)景下減少服務(wù)器網(wǎng)絡(luò)延遲,并提供實(shí)現(xiàn)建議。 1. 引言 在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,用戶對(duì)加載速度和響應(yīng)時(shí)間的要求越來越高。網(wǎng)絡(luò)延遲直接影響到用戶體驗(yàn),因此優(yōu)化網(wǎng)絡(luò)通信變得尤為重要。傳統(tǒng)的網(wǎng)絡(luò)協(xié)議,如
    的頭像 發(fā)表于 09-30 15:14 ?528次閱讀

    空調(diào)協(xié)議網(wǎng)關(guān)快速操作空調(diào)協(xié)議轉(zhuǎn)換為Modbus協(xié)議

    空調(diào)協(xié)議,即空調(diào)通信協(xié)議,是指用于空調(diào)設(shè)備之間進(jìn)行數(shù)據(jù)傳輸和通信的規(guī)定和約定;而Modbus協(xié)議是一種廣泛應(yīng)用的工業(yè)通信協(xié)議,是工業(yè)電子設(shè)備之間常用的連接方式。 如果要將空調(diào)
    的頭像 發(fā)表于 08-06 13:40 ?822次閱讀
    空調(diào)<b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)快速操作空調(diào)<b class='flag-5'>協(xié)議</b>轉(zhuǎn)換為Modbus<b class='flag-5'>協(xié)議</b>

    ESP8266_RTOS_SDK 1.4.0中的“websocket_demo”不起作用是怎么回事?

    新的SDK用戶在這里。我剛剛嘗試了昨天發(fā)布的 ESP8266_RTOS_SDK 1.4.0 中包含的示例“websocket_demo”。我唯一更改的是 websocket.c 中的 wifi 憑據(jù)
    發(fā)表于 07-18 07:05

    websocket.c RTOS演示中缺少對(duì)wifi_connect()的調(diào)用怎么辦?

    在 RTOS SDK 1.3 中,有一個(gè)名為 /examples/websocket_demo/websocket/websocket.c 的示例。在函數(shù)中有一個(gè)名為 websocket
    發(fā)表于 07-18 06:37

    無法與nopoll_conn_new()建立連接是怎么回事?

    ;echo.websocket.org\", \"80\", \"echo.websocket.org:80\", \"ws
    發(fā)表于 07-12 06:30