亚洲av成人精品日韩一区,97久久久精品综合88久久,玩弄japan白嫩少妇hd,亚洲av片不卡无码久久,玩弄人妻少妇500系列

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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)場(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的包裝器,可以無縫地集成Ruby中WebSockets的主要功能,并允許在整個(gè)域模型中輕松實(shí)現(xiàn)。 它內(nèi)置于Rails 5.2中,因此無需安裝/執(zhí)行任何外部庫(kù)或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í)對(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è)包直接來自于Rails的團(tuán)隊(duì)。 使用此庫(kù),我實(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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1620

    瀏覽量

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

    關(guān)注

    8

    文章

    1402

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

    相位測(cè)量?jī)x工作原理,相位測(cè)量?jī)x怎么使用

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

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

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

    AB伺服軟件使用方法

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

    接地電阻測(cè)試儀使用方法

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

    示波器高壓探頭使用方法

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

    探針頭型使用方法有哪些

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

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

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

    DC/DC模擬的基本使用方法和特性確認(rèn)方法

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

    直流電阻測(cè)試儀的使用方法

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

    功分器的工作原理、分類及設(shè)計(jì)方法

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

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

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

    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