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

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

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

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

WebSocket工作原理及使用方法

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

掃碼添加小助手

加入工程師交流群

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

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

WebSocket工作原理及使用方法

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

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

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

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

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

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

WebSocket工作原理及使用方法

在第5行,我設置了ActionCable服務器端點

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

WebSocket工作原理及使用方法

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

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

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

WebSocket工作原理及使用方法

導入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ā)送所有訂閱者都能看到的消息以及從其他訂閱者接收消息。當然,你可以限制為兩個人,并使它成為p2p,但是那樣還有什么樂趣呢?

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

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

    關(guān)注

    2

    文章

    1600

    瀏覽量

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

    關(guān)注

    8

    文章

    1402

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    精密空調(diào)操作使用方法詳解

    精密空調(diào)操作使用方法詳解
    的頭像 發(fā)表于 02-10 14:44 ?975次閱讀
    精密空調(diào)操作<b class='flag-5'>使用方法</b>詳解

    無線收發(fā)器工作原理,無線收發(fā)器怎么使用

    無線收發(fā)器作為現(xiàn)代通信技術(shù)的重要組成部分,廣泛應用于各個領(lǐng)域,包括無線通信、物聯(lián)網(wǎng)、遠程控制和無線傳感器網(wǎng)絡等。本文將深入探討無線收發(fā)器的工作原理,同時提供詳細的使用方法。
    的頭像 發(fā)表于 01-29 15:31 ?1391次閱讀

    相位測量儀工作原理,相位測量儀怎么使用

    相位測量儀作為電子測量領(lǐng)域的重要工具,廣泛應用于電力、通信、自動化控制等多個行業(yè)。它通過精確測量電壓、電流等信號之間的相位關(guān)系,為工程師和技術(shù)人員提供了關(guān)鍵的數(shù)據(jù)支持。本文旨在深入探討相位測量儀的工作原理,并詳細介紹其使用方法。
    的頭像 發(fā)表于 01-29 15:07 ?2118次閱讀

    快速了解電源模塊的使用方法

    電源是整個電路可靠工作的核心部分。然而,由于電源電路的電流和發(fā)熱量較大,容易出現(xiàn)故障。今天我為大家介紹一下電源模塊的使用方法。
    的頭像 發(fā)表于 01-21 15:24 ?750次閱讀

    AB伺服軟件使用方法

    AB伺服軟件使用方法
    發(fā)表于 12-24 14:45 ?0次下載

    接地電阻測試儀使用方法

    使用方法。 二、接地電阻測試儀的工作原理 接地電阻測試儀通常采用四線法測量原理,通過在接地體上施加一個已知電流,并測量由此產(chǎn)生的電壓降,從而計算出接地電阻值。這種方法可以有效地消除測試線電阻對測量結(jié)果的影響。 三、
    的頭像 發(fā)表于 11-27 09:24 ?2617次閱讀

    示波器高壓探頭使用方法

    示波器高壓探頭是一種用于測量高電壓信號的儀器,通常用于高壓電源、電機、變壓器等電氣設備的測試。以下是示波器高壓探頭的詳細使用方法
    的頭像 發(fā)表于 10-03 16:43 ?1317次閱讀

    探針頭型使用方法有哪些

    探針頭型的使用方法多種多樣,具體取決于探針頭型的類型、被測對象的特性以及測試需求。以下是一些常見探針頭型的使用方法概述: 1. 凹頭探針 用途 :主要用于測試長導腳、端子及繞線柱等較長或較粗的被測點
    的頭像 發(fā)表于 09-07 10:57 ?1820次閱讀

    指定初始器的使用方法及優(yōu)點

    隨著C語言的發(fā)展,C99標準引入了一些新的特性,極大地方便了程序員的編碼工作。其中一個非常實用且強大的功能便是“指定初始器”(Designated Initializers)。在這篇文章中,我們將深入探討指定初始器的使用方法及其帶來的便利。
    的頭像 發(fā)表于 08-29 09:51 ?588次閱讀

    DC/DC模擬的基本使用方法和特性確認方法

    本篇介紹了DC/DC模擬的基本使用方法及確認基本特性的方法。
    的頭像 發(fā)表于 08-20 17:08 ?1362次閱讀
    DC/DC模擬的基本<b class='flag-5'>使用方法</b>和特性確認<b class='flag-5'>方法</b>

    直流電阻測試儀的使用方法

    直流電阻測試儀的使用方法是一個相對系統(tǒng)且詳細的過程,它涉及了從準備工作到測試結(jié)束的一系列步驟。
    的頭像 發(fā)表于 08-19 18:13 ?1995次閱讀

    功分器的工作原理、分類及設計方法

    功分器,又稱功率分配器,是一種電子器件,主要用于將輸入信號的功率均勻地分配到多個輸出端口。它廣泛應用于通信、雷達、電子對抗、測量測試等領(lǐng)域。 一、功分器的工作原理 功分器的工作原理基于電磁波的傳輸
    的頭像 發(fā)表于 08-13 11:17 ?5707次閱讀

    滑動變阻器的工作原理、結(jié)構(gòu)特點及使用方法

    滑動變阻器是一種常見的電子元件,它通過改變電阻值來控制電路中的電流大小。在電路設計和電子設備中,滑動變阻器的應用非常廣泛。 一、滑動變阻器的工作原理 1.1 電阻的概念 電阻是指導體對電流的阻礙作用
    的頭像 發(fā)表于 08-05 10:59 ?1w次閱讀

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

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