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

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

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

WebSocket工作原理及使用方法

汽車玩家 ? 來源:今日頭條 ? 作者:新鈦云服 ? 2020-05-05 22:12 ? 次閱讀

它有很多名字; WebSocket,WebSocket協(xié)議和WebSocket API。從首選的消息傳遞應(yīng)用程序到流行的在線多人游戲,WebSocket在當(dāng)今最常用的Web應(yīng)用程序中是至關(guān)重要的。

根據(jù)定義,WebSocket是通過單個(gè)TCP連接提供全雙工(雙向通信)通信信道的計(jì)算機(jī)通信協(xié)議。此WebSocket API可在用戶的瀏覽器和服務(wù)器之間進(jìn)行雙向通信。用戶可以向服務(wù)器發(fā)送消息并接收事件驅(qū)動(dòng)的響應(yīng),而無需輪詢服務(wù)器。 它可以讓多個(gè)用戶連接到同一個(gè)實(shí)時(shí)服務(wù)器,并通過API進(jìn)行通信并立即獲得響應(yīng)。

WebSocket工作原理及使用方法

WebSockets允許用戶和服務(wù)器之間的流連接,并允許即時(shí)信息交換。在聊天應(yīng)用程序的示例中,通過套接字匯集消息,可以實(shí)時(shí)與一個(gè)或多個(gè)用戶交換,具體取決于誰在服務(wù)器上“監(jiān)聽”(連接)。

WebSockets不僅限于聊天/消息傳遞應(yīng)用程序。它們適用于需要實(shí)時(shí)更新和即時(shí)信息交換的任何應(yīng)用程序。一些示例包括但不限于:現(xiàn)場體育更新,股票行情,多人游戲,聊天應(yīng)用,社交媒體等等。

WebSockets還會考慮代理和防火墻等危險(xiǎn),使得任何連接都可以進(jìn)行流式傳輸。它支持單個(gè)連接的上游和下游通信。 它還減輕了服務(wù)器的負(fù)擔(dān),允許現(xiàn)有機(jī)器支持同時(shí)連接。

這是現(xiàn)代Web應(yīng)用程序中的示例實(shí)現(xiàn)WebSockets。在下面的示例中,我使用WebSockets作為帶有Rails 5 API后端和React.js前端的即時(shí)消息應(yīng)用程序。這絕不是一個(gè)指南,而是一個(gè)如何使用它的例子。我使用了Action Cable,它是Rails的包裝器,可以無縫地集成Ruby中WebSockets的主要功能,并允許在整個(gè)域模型中輕松實(shí)現(xiàn)。 它內(nèi)置于Rails 5.2中,因此無需安裝/執(zhí)行任何外部庫或gem。

它的工作原理是Pub-Sub(發(fā)布和訂閱)。它適用于發(fā)送者將數(shù)據(jù)(發(fā)布者)發(fā)送給抽象數(shù)量的收件人(訂閱者),而無需指定他們是誰。

第一步是將服務(wù)器掛載到路由文件中,這樣前端就可以從流中得到endpoint:

WebSocket工作原理及使用方法

在第5行,我設(shè)置了ActionCable服務(wù)器端點(diǎn)

下一步是在后端創(chuàng)建一個(gè)通道,以便在實(shí)時(shí)創(chuàng)建消息時(shí)對消息進(jìn)行流式處理。

WebSocket工作原理及使用方法

這是管理消息創(chuàng)建以及廣播消息的消息通道

這里我們有兩種方法,訂閱和接收。訂閱的第一種方法允許將消息通道流式傳輸?shù)竭B接的用戶或訂戶。 接收的第二種方法管理消息創(chuàng)建和廣播消息。我實(shí)現(xiàn)了JWT用戶身份驗(yàn)證,以便可以將消息追溯到用戶,只有具有有效用戶帳戶的消息才能創(chuàng)建消息。

對于我的應(yīng)用程序的前端,我使用它們npm package actioncable從客戶端到服務(wù)器端連接到WebSocket API。 這個(gè)包直接來自于Rails的團(tuán)隊(duì)。 使用此庫,我實(shí)例化了一個(gè)cableApp實(shí)例,并將其作為props傳遞給需要訪問WebSocket連接的組件。

WebSocket工作原理及使用方法

導(dǎo)入actionCable并創(chuàng)建了一個(gè)cableApp實(shí)例,然后將cableApp連接到我的后端端點(diǎn)“/ cable”并將其傳遞給需要連接的組件

然后,我通過React.js生命周期方法componentDidMount()連接到WebSocket的連接,并在每次將組件安裝到DOM時(shí)建立連接。

WebSocket工作原理及使用方法

在componentDidMount()中,我建立了客戶端以連接到WebSocket協(xié)議,該協(xié)議從我的Rails API中的“messagesChannel”流式傳輸。

現(xiàn)在,每次創(chuàng)建消息并將其發(fā)送到接收方法時(shí),訂閱(d)用戶將立即接收并能夠?qū)崟r(shí)查看消息。此實(shí)現(xiàn)支持訂閱同一頻道的多個(gè)用戶。因此,如果多個(gè)用戶簽名并訂閱了相同的頻道,他們可以發(fā)送所有訂閱者都能看到的消息以及從其他訂閱者接收消息。當(dāng)然,你可以限制為兩個(gè)人,并使它成為p2p,但是那樣還有什么樂趣呢?

我希望通過閱讀本文,可以看到WebSockets的潛力。它使自己成為一個(gè)寶貴的資源,在這個(gè)時(shí)代,信息交換需要很快完成。 希望讀者將在自己的項(xiàng)目中實(shí)現(xiàn)它們。

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

    關(guān)注

    2

    文章

    1501

    瀏覽量

    62034
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1353

    瀏覽量

    79078
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)網(wǎng)絡(luò)管理:ohos.net.webSocket WebSocket連接

    使用WebSocket建立服務(wù)器與客戶端的雙向連接,需要先通過[createWebSocket]方法創(chuàng)建[WebSocket]對象,然后通過[connect]方法連接到服務(wù)器。當(dāng)連接成
    的頭像 發(fā)表于 06-19 17:12 ?584次閱讀
    鴻蒙開發(fā)網(wǎng)絡(luò)管理:ohos.net.<b class='flag-5'>webSocket</b> <b class='flag-5'>WebSocket</b>連接

    軟啟動(dòng)器工作原理使用方法

    軟啟動(dòng)器是一種用于電動(dòng)機(jī)啟動(dòng)的電氣設(shè)備,其主要作用是降低電動(dòng)機(jī)啟動(dòng)時(shí)的電流沖擊,減少啟動(dòng)過程中對電網(wǎng)和機(jī)械設(shè)備的損害。本文將詳細(xì)介紹軟啟動(dòng)器的工作原理使用方法以及相關(guān)技術(shù)參數(shù)。 一、軟啟動(dòng)器概述
    的頭像 發(fā)表于 06-18 10:32 ?4114次閱讀

    BLDC電機(jī)的工作原理使用方法

    自動(dòng)化系統(tǒng),BLDC電機(jī)的身影無處不在。本文將詳細(xì)探討B(tài)LDC電機(jī)的工作原理、使用方法及其優(yōu)勢,以期為讀者提供全面且深入的了解。
    的頭像 發(fā)表于 06-04 18:26 ?1163次閱讀

    LCR電橋測試儀的工作原理使用方法

    LCR電橋測試儀是一種精密的電子測量儀器,主要用于測量電感(L)、電容(C)和電阻(R)等元件的參數(shù)。它基于電橋原理進(jìn)行測量,通過比較未知元件與已知標(biāo)準(zhǔn)元件之間的差異來確定待測元件的參數(shù)數(shù)值。本文將詳細(xì)介紹LCR電橋測試儀的工作原理使用方法以及注意事項(xiàng),以幫助讀者更好地
    的頭像 發(fā)表于 05-13 16:50 ?4389次閱讀

    鴻蒙原生應(yīng)用開發(fā)-網(wǎng)絡(luò)管理WebSocket連接

    一、場景介紹 使用WebSocket建立服務(wù)器與客戶端的雙向連接,需要先通過createWebSocket()方法創(chuàng)建WebSocket對象,然后通過connect()方法連接到服務(wù)器
    發(fā)表于 04-07 09:46

    點(diǎn)焊機(jī)的工作原理使用方法

    點(diǎn)焊機(jī)是一種常用于金屬加工中的設(shè)備,它能夠?qū)⒔饘倭慵ㄟ^瞬間高溫融合在一起。這種焊接方式在汽車制造、電子設(shè)備制造、金屬加工等領(lǐng)域廣泛應(yīng)用。本文創(chuàng)想焊縫跟蹤小編將介紹點(diǎn)焊機(jī)的工作原理以及使用方法
    的頭像 發(fā)表于 03-26 17:50 ?3143次閱讀
    點(diǎn)焊機(jī)的<b class='flag-5'>工作原理</b>及<b class='flag-5'>使用方法</b>

    板式換熱器工作原理 板式換熱器的安裝和使用方法

    板式換熱器是一種常用的換熱設(shè)備,它通過將冷熱流體分別流經(jīng)板式換熱器的兩側(cè),使熱量從熱流體傳遞給冷流體,從而實(shí)現(xiàn)熱量的傳遞和能量的高效利用。本文將詳細(xì)介紹板式換熱器的工作原理、安裝和使用方法。 一
    的頭像 發(fā)表于 02-20 16:10 ?4411次閱讀

    板式換熱器工作原理 板式換熱器的安裝和使用方法

    板式換熱器是一種常見的換熱設(shè)備,主要用于熱交換過程中的熱傳導(dǎo)。它由一系列平板組成,這些平板之間存在熱傳導(dǎo),實(shí)現(xiàn)熱能的轉(zhuǎn)移。本文將詳細(xì)介紹板式換熱器的工作原理、安裝和使用方法。 一、板式換熱器
    的頭像 發(fā)表于 02-14 17:10 ?8276次閱讀

    制氧機(jī)原理及使用方法 空氣制氧機(jī)的工作原理

    制氧機(jī)是一種能夠從空氣中提取出高純度氧氣的設(shè)備,廣泛應(yīng)用于醫(yī)療機(jī)構(gòu)、養(yǎng)老院、家庭等多個(gè)領(lǐng)域。制氧機(jī)的原理和使用方法對于使用者來說非常重要,下面將詳細(xì)介紹。 一、制氧機(jī)的工作原理 制氧機(jī)是根據(jù)分子篩
    的頭像 發(fā)表于 02-03 14:50 ?7996次閱讀

    ph傳感器的工作原理 ph傳感器的使用方法

    PH傳感器是一種感知物質(zhì)酸堿性的設(shè)備,它在許多領(lǐng)域中被廣泛應(yīng)用,包括環(huán)境監(jiān)測、水質(zhì)檢測、食品加工和生物科學(xué)研究等領(lǐng)域。本文將詳細(xì)介紹PH傳感器的工作原理使用方法。 一、PH傳感器的工作原理 PH
    的頭像 發(fā)表于 02-03 09:43 ?5043次閱讀

    變頻器工作原理及應(yīng)用 變頻器的使用方法及參數(shù)調(diào)整

    使用方法和參數(shù)調(diào)整。 一、變頻器的工作原理 變頻器的基本構(gòu)成 變頻器通常由直流整流器、濾波器、逆變器和控制電路組成。其中,直流整流器將交流電源轉(zhuǎn)換為直流電源,濾波器用于平滑輸出電流,在逆變器中將直流電流轉(zhuǎn)換為具
    的頭像 發(fā)表于 01-30 14:43 ?5344次閱讀

    恒訊科技帶大家深入理解:WebSocket服務(wù)器的工作原理

    WebSocket是一種在單個(gè)TCP連接上進(jìn)行全雙工通信的通信協(xié)議。它的設(shè)計(jì)目標(biāo)是在Web瀏覽器和服務(wù)器之間提供低延遲、高效的雙向通信。下面是深入理解WebSocket服務(wù)器工作原理的一些關(guān)鍵概念
    的頭像 發(fā)表于 01-29 16:48 ?483次閱讀

    臺秤的工作原理 臺秤的基本構(gòu)造及使用方法

    臺秤的工作原理: 臺秤是一種常見的電子稱重裝置,它主要通過承載物體的重力作用力來測量重量。臺秤的工作原理可以分為以下幾個(gè)步驟: 傳感器感應(yīng):臺秤的下方通常安裝有傳感器,這些傳感器可以感應(yīng)到承載物體
    的頭像 發(fā)表于 01-24 11:03 ?3311次閱讀

    變頻器工作原理及應(yīng)用 變頻器的使用方法及參數(shù)調(diào)整

    變頻器是一種能夠?qū)﹄娫搭l率進(jìn)行調(diào)節(jié)的電力設(shè)備,它能夠?qū)⒐潭ㄝ斎腩l率的電力轉(zhuǎn)變?yōu)榭梢詫敵鲱l率進(jìn)行調(diào)節(jié)的電力。本文將詳細(xì)介紹變頻器的工作原理、應(yīng)用領(lǐng)域以及使用方法和參數(shù)調(diào)整等方面。 一、變頻器
    的頭像 發(fā)表于 01-19 16:49 ?3063次閱讀

    高壓放大器的工作原理使用方法是什么

    工作原理使用方法。 一、工作原理 放大器拓?fù)浣Y(jié)構(gòu):高壓放大器通常采用共源極或共集電極的放大器拓?fù)浣Y(jié)構(gòu)。其中,共源極電路具有較高的輸入阻抗和較低的輸出阻抗,適合用于高壓放大器應(yīng)用。通過合理設(shè)計(jì)電路結(jié)構(gòu)和匹配網(wǎng)絡(luò),可
    的頭像 發(fā)表于 01-02 14:59 ?603次閱讀
    高壓放大器的<b class='flag-5'>工作原理</b>和<b class='flag-5'>使用方法</b>是什么