91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级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工作原理及使用方法

汽車玩家 ? 來(lái)源:今日頭條 ? 作者:新鈦云服 ? 2020-05-05 22:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

WebSocket工作原理及使用方法

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

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

WebSockets還會(huì)考慮代理和防火墻等危險(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的包裝器,可以無(wú)縫地集成Ruby中WebSockets的主要功能,并允許在整個(gè)域模型中輕松實(shí)現(xiàn)。 它內(nèi)置于Rails 5.2中,因此無(wú)需安裝/執(zhí)行任何外部庫(kù)或gem。

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

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

WebSocket工作原理及使用方法

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

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

WebSocket工作原理及使用方法

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

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

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

WebSocket工作原理及使用方法

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

然后,我通過(guò)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,但是那樣還有什么樂(lè)趣呢?

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

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

    關(guān)注

    2

    文章

    2387

    瀏覽量

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

    關(guān)注

    8

    文章

    1425

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RTL9301管理型交換機(jī)DHCP Server使用方法

    RTL9301管理型交換機(jī)DHCP Server使用方法
    的頭像 發(fā)表于 02-01 10:52 ?1323次閱讀
    RTL9301管理型交換機(jī)DHCP Server<b class='flag-5'>使用方法</b>

    從0到1搭建實(shí)時(shí)日志監(jiān)控系統(tǒng):基于WebSocket + Elasticsearch的實(shí)戰(zhàn)方案

    低成本、實(shí)時(shí)性高的日志監(jiān)控系統(tǒng)。 2. 技術(shù)選型 數(shù)據(jù)存儲(chǔ) :Elasticsearch(高效檢索與聚合) 實(shí)時(shí)推送 :WebSocket(全雙工通信,避免HTTP輪詢) 后端服務(wù) :Node.js
    發(fā)表于 01-09 16:43

    ups電源的作用和使用方法詳解

    UPS(不間斷電源)是一種重要的電力保護(hù)設(shè)備,主要用于在電網(wǎng)供電異常時(shí)提供臨時(shí)的后備電源,并改善電源質(zhì)量。以下是其核心作用和使用方法的詳細(xì)介紹:一、UPS的主要作用核心:提供不間斷電力斷電保護(hù):在
    的頭像 發(fā)表于 01-08 09:21 ?1293次閱讀
    ups電源的作用和<b class='flag-5'>使用方法</b>詳解

    無(wú)線充電器的工作原理核心

    無(wú)線充電器的工作原理核心
    的頭像 發(fā)表于 12-06 10:19 ?1404次閱讀
    無(wú)線充電器的<b class='flag-5'>工作原理</b>核心

    芯源IR調(diào)制器都有哪些具體使用?使用方法是怎樣的?

    芯源IR調(diào)制器都有哪些具體使用?以及使用方法是怎樣的?
    發(fā)表于 12-02 06:33

    堆棧的定義,堆棧的使用方法

    和使用; 對(duì)于8086CPU,進(jìn)出堆棧的只能是2字節(jié)的數(shù)據(jù)。 2 堆棧的使用方法 常用的堆棧相關(guān)指令包括PUSH POP PUSHF和POPF,語(yǔ)法如下: PUSH 源操作數(shù);將指定操作數(shù)入棧保護(hù) POP
    發(fā)表于 11-21 06:49

    一文吃透WebSocket:智能物聯(lián)網(wǎng)通信的入門與實(shí)戰(zhàn)全攻略!

    想在智能物聯(lián)網(wǎng)項(xiàng)目中實(shí)現(xiàn)設(shè)備與平臺(tái)的實(shí)時(shí)“對(duì)話”?WebSocket是你的最佳選擇。本文作為一份完整的學(xué)習(xí)與實(shí)戰(zhàn)攻略,從基礎(chǔ)概念講起,逐步深入到編碼實(shí)踐,涵蓋協(xié)議細(xì)節(jié)、開發(fā)框架與常見(jiàn)問(wèn)題
    的頭像 發(fā)表于 10-15 18:16 ?505次閱讀
    一文吃透<b class='flag-5'>WebSocket</b>:智能物聯(lián)網(wǎng)通信的入門與實(shí)戰(zhàn)全攻略!

    智能物聯(lián)網(wǎng)實(shí)時(shí)通信實(shí)戰(zhàn):WebSocket技術(shù)解析 !

    在設(shè)備海量接入、數(shù)據(jù)高頻交互的物聯(lián)網(wǎng)時(shí)代,WebSocket以其低延遲、雙向通信的優(yōu)勢(shì)脫穎而出。本文全面解析其在智能物聯(lián)網(wǎng)中的技術(shù)實(shí)現(xiàn)路徑,涵蓋協(xié)議分析、服務(wù)端/客戶端開發(fā)、心跳保活與錯(cuò)誤處理,并
    的頭像 發(fā)表于 10-15 18:16 ?1048次閱讀
    智能物聯(lián)網(wǎng)實(shí)時(shí)通信實(shí)戰(zhàn):<b class='flag-5'>WebSocket</b>技術(shù)解析 !

    條碼掃碼設(shè)備的使用方法

    使用方法,能讓其充分發(fā)揮價(jià)值,為各行業(yè)的規(guī)范化管理提供有力支撐。一、條碼掃碼設(shè)備的主要類型不同場(chǎng)景對(duì)條碼掃碼設(shè)備的需求存在差異,目前主流類型可分為四類,適配不同工作
    的頭像 發(fā)表于 09-17 16:15 ?973次閱讀
    條碼掃碼設(shè)備的<b class='flag-5'>使用方法</b>

    錫膏的儲(chǔ)存及使用方法詳解

    錫膏是一種常用的焊接輔助材料,廣泛應(yīng)用于電子、電器、通訊、儀表等行業(yè)的焊接工藝中。正確的儲(chǔ)存和使用方法對(duì)于保證錫膏的品質(zhì)和焊接效果至關(guān)重要。本文將就錫膏的儲(chǔ)存和使用方法進(jìn)行詳細(xì)介紹,希望能對(duì)廣大焊接工作者有所幫助。
    的頭像 發(fā)表于 07-18 17:36 ?1428次閱讀
    錫膏的儲(chǔ)存及<b class='flag-5'>使用方法</b>詳解

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置實(shí)用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作傳感器復(fù)位,我知道這個(gè) GPIO0 用于重置傳感器,但我不明白的是選項(xiàng)用戶 GPIO 例如GPIO 1可以是User GPIO0,這是什么意思呢?
    發(fā)表于 05-19 06:56

    電動(dòng)調(diào)壓器的工作原理

    電壓調(diào)壓器是一種用于控制電路中電壓的裝置,其工作原理因類型而異,以下是幾種常見(jiàn)電壓調(diào)壓器的工作原理
    的頭像 發(fā)表于 05-12 13:46 ?1388次閱讀
    電動(dòng)調(diào)壓器的<b class='flag-5'>工作原理</b>

    LCR測(cè)試儀的使用方法與注意事項(xiàng)

    LCR測(cè)試儀的使用方法、操作注意事項(xiàng)及常見(jiàn)故障處理,幫助讀者高效、安全地掌握這一儀器的使用技巧。 ? 二、LCR測(cè)試儀的基本使用方法 1. 準(zhǔn)備階段 (1)設(shè)備檢查:確保測(cè)試儀電源線、連接線完好,電源開關(guān)關(guān)閉。檢查測(cè)試夾具或探針
    的頭像 發(fā)表于 04-29 10:36 ?1.4w次閱讀
    LCR測(cè)試儀的<b class='flag-5'>使用方法</b>與注意事項(xiàng)

    微動(dòng)開關(guān)的工作原理

    微動(dòng)開關(guān)的工作原理
    的頭像 發(fā)表于 04-17 09:00 ?3656次閱讀

    西門子PLC-模擬量采集計(jì)算使用方法

    西門子PLC-模擬量采集計(jì)算使用方法,很實(shí)用
    發(fā)表于 04-09 15:29 ?1次下載