91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認識你,還能領(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是通過單個TCP連接提供全雙工(雙向通信)通信信道的計算機通信協(xié)議。此WebSocket API可在用戶的瀏覽器和服務(wù)器之間進行雙向通信。用戶可以向服務(wù)器發(fā)送消息并接收事件驅(qū)動的響應(yīng),而無需輪詢服務(wù)器。 它可以讓多個用戶連接到同一個實時服務(wù)器,并通過API進行通信并立即獲得響應(yīng)。

WebSocket工作原理及使用方法

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

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

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

這是現(xiàn)代Web應(yīng)用程序中的示例實現(xiàn)WebSockets。在下面的示例中,我使用WebSockets作為帶有Rails 5 API后端和React.js前端的即時消息應(yīng)用程序。這絕不是一個指南,而是一個如何使用它的例子。我使用了Action Cable,它是Rails的包裝器,可以無縫地集成Ruby中WebSockets的主要功能,并允許在整個域模型中輕松實現(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ù)器端點

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

WebSocket工作原理及使用方法

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

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

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

WebSocket工作原理及使用方法

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

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

WebSocket工作原理及使用方法

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

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

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

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

    關(guān)注

    2

    文章

    2373

    瀏覽量

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

    關(guān)注

    8

    文章

    1425

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    RTL9301管理型交換機DHCP Server使用方法

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

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

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

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

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

    無線充電器的工作原理核心

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

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

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

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

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

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

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

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

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

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

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

    錫膏的儲存及使用方法詳解

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

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

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

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

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

    LCR測試儀的使用方法與注意事項

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

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

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

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

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