国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

websocket介紹并模擬股票數(shù)據(jù)推流

這篇具有很好參考價值的文章主要介紹了websocket介紹并模擬股票數(shù)據(jù)推流。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Websockt概念

Websockt是一種網(wǎng)絡通信協(xié)議,允許客戶端和服務器雙向通信。最大的特點就是允許服務器主動推送數(shù)據(jù)給客戶端,比如股票數(shù)據(jù)在客戶端實時更新,就能利用websocket。

Websockt和http協(xié)議一樣,并不是設置在linux內(nèi)核中,而是通過用戶空間的應用程序來實現(xiàn)和處理。

http網(wǎng)址的格式:協(xié)議://域名/路徑。如:Example Domain。

websocket網(wǎng)址的格式:ws://域名/路徑 或 wss://域名/路徑。如:ws://www.example.com/chat。

Websocket與http的關聯(lián)

1、基于HTTP協(xié)議的握手:WebSocket協(xié)議的握手過程是基于HTTP協(xié)議的。在建立WebSocket連接之前,客戶端和服務器之間會進行一次HTTP握手,這是為了協(xié)商和確認使用WebSocket協(xié)議進行通信。

2、共享同一端口:WebSocket協(xié)議使用HTTP協(xié)議的80端口(或443端口,用于加密連接),這意味著WebSocket連接可以通過與HTTP服務器共享同一端口來進行通信。這樣可以避免在網(wǎng)絡上開啟新的端口,降低了網(wǎng)絡配置的復雜性。

Websocket與http對比

優(yōu)點

實時性:WebSocket支持雙向通信,服務器可以主動推送數(shù)據(jù)給客戶端,實現(xiàn)實時更新和推送功能。

較低的延遲:WebSocket建立一次連接后,可以保持長時間的連接狀態(tài),避免了每次請求都要建立新的連接的開銷,從而減少了延遲。

較小的數(shù)據(jù)開銷:WebSocket使用二進制消息傳輸,相對于HTTP的文本數(shù)據(jù)傳輸,可以減少數(shù)據(jù)包的大小,降低網(wǎng)絡傳輸開銷。

更少的網(wǎng)絡流量:由于WebSocket采用長連接,不需要頻繁的請求和響應,可以減少網(wǎng)絡流量和負載。

缺點

兼容性問題:WebSocket是HTML5的一部分,相對于HTTP,對于一些低版本的瀏覽器和服務器來說,支持程度可能較低。

需要服務器端支持:WebSocket需要服務器端支持實現(xiàn)雙向通信,而有些服務器可能沒有提供WebSocket的支持。

協(xié)議復雜性:相對于HTTP來說,WebSocket的協(xié)議相對復雜一些,實現(xiàn)和維護的成本可能較高。

Websocket的握手

與http握手的區(qū)別

下圖是websocket的握手報文案例。與http握手報文的核心區(qū)別是兩處紅框部分是否是Upgrade和websocket。

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http

Websocket的握手流程

1.瀏覽器發(fā)送握手報文。

2.服務器解析出sec-websocket-key

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http

3.sec-websocket-key與GUID字符串聯(lián)合成新字符串。

GUID是一組固定的字符串,在websocket的官方文檔里有規(guī)定。

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http

4.用哈希算法對新字符串進行哈希

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http

5.對哈希值轉(zhuǎn)為base64格式,生成value

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http

6.把value配握手返回報文中進行返回

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http

仿股票數(shù)據(jù)推流

股票數(shù)據(jù)的推流的特點:客戶端連接上服務器之后,服務器就會定時往客戶端發(fā)送更新過的股票數(shù)據(jù)。

下圖實現(xiàn)了一個簡易版的服務器,能定時給連接上的客戶端推送數(shù)據(jù),當客戶端嘗試發(fā)送數(shù)據(jù)的時候會斷開連接。

import asyncio
import websockets

async def push_price(websocket, path):
	while True:
		price = "price = 299.9"
		await websocket.send(price)

		try:
		# 接收消息
			message = await asyncio.wait_for(websocket.recv(), timeout=1)

		# 如果接收到消息,立即斷開連接
			if message:
				await websocket.close()
				break
		except:
			pass
start_server = websockets.serve(push_price, None, 8765) //返回一個協(xié)程對象
                                                        //該對象的任務函數(shù)是push_price

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

客戶端

<html>
<head>
    <script>
        let ws;

        function doConnect(addr) {
            ws = new WebSocket("ws://" + addr);
            ws.onopen = () => {
                document.getElementById("log").value += (" Connection opened\n");
            };
            ws.onmessage = (event) => {
                document.getElementById("log").value += (" Receive: " + event.data + "\n\n"); // JSON.stringify()
            };
            ws.onclose = () => {
                document.getElementById("log").value += (" Connection closed\n");
            };
        }

        document.addEventListener("DOMContentLoaded", (event) => {
            document.getElementById("btn_connect").onclick = () => {
                let server_addr = document.getElementById("server_addr").value;
                doConnect(server_addr);
            };

            document.getElementById("btn_send").onclick = () => {
                let msg = document.getElementById("message").value;
                ws.send(msg);
                document.getElementById("log").value += (" Send: " + msg + "\n");
            };
        });
    </script>
</head>
<body>

<div id="header">
    <h1 align="left">WebSocket Client</h1>
    Server: <input id="server_addr" type="text" value="192.168.232.132:8888">
    <input id="btn_connect" type="button" value="Connect!"><br/><br/>

    Message: <input id="message" type="text" value="">
    <input id="btn_send" type="button" value="Send"><br/><br/>

    <textarea cols="250" id="log" rows="50"></textarea>
</div>
</body>
</html>
~                                                                                                                                                                                                            
~                                                                                                                                                                                                            
~         

運行結(jié)果

websocket介紹并模擬股票數(shù)據(jù)推流,websocket,網(wǎng)絡協(xié)議,網(wǎng)絡,python,金融,后端,http文章來源地址http://www.zghlxwxcb.cn/news/detail-822325.html

到了這里,關于websocket介紹并模擬股票數(shù)據(jù)推流的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • WebSocket協(xié)議介紹

    WebSocket 協(xié)議是一種基于 TCP 的通訊協(xié)議,它允許雙向通信,使客戶端和服務器之間的數(shù)據(jù)交換變得更加高效。在本文中,我們會深入了解 WebSocket 協(xié)議以及它對現(xiàn)代 Web 應用程序的重要性和應用場景。 ??WebSocket 協(xié)議是一種全雙工的通訊協(xié)議,它使用標準 HTTP/HTTPS 端口(80 和

    2024年02月14日
    瀏覽(16)
  • Python網(wǎng)絡爬蟲-WebSocket數(shù)據(jù)抓取

    目錄 前言 1、WebSocket請求的分析通常涉及以下幾個方面: 2、利用WebSocket爬取數(shù)據(jù) 總結(jié) 最后,創(chuàng)作不易!非常感謝大家的關注、點贊、評論啦!謝謝三連哦!好人好運連連,學習進步!工作順利哦!? 博主介紹:?專注于前后端、機器學習、人工智能應用領域開發(fā)的優(yōu)質(zhì)創(chuàng)作

    2024年04月27日
    瀏覽(18)
  • 【路由協(xié)議】使用按需路由協(xié)議和數(shù)據(jù)包注入的即時網(wǎng)絡模擬傳遞率(PDR)、總消耗能量和節(jié)點消耗能量以及延遲研究(Matlab代碼實現(xiàn))

    【路由協(xié)議】使用按需路由協(xié)議和數(shù)據(jù)包注入的即時網(wǎng)絡模擬傳遞率(PDR)、總消耗能量和節(jié)點消耗能量以及延遲研究(Matlab代碼實現(xiàn))

    ????????? 歡迎來到本博客 ???????? ??博主優(yōu)勢: ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運行結(jié)果 ??3?參考文獻 ??4 Matlab代碼實現(xiàn) 使用按

    2024年02月12日
    瀏覽(25)
  • ESP32-CAM網(wǎng)絡攝像頭系列-01-基于RTSP協(xié)議的局域網(wǎng)視頻推流/拉流的簡單實現(xiàn)

    ESP32-CAM網(wǎng)絡攝像頭系列-01-基于RTSP協(xié)議的局域網(wǎng)視頻推流/拉流的簡單實現(xiàn)

    ????????由于項目需要,最近開始開坑關于ESP32-CAM系列的RTSP網(wǎng)絡攝像頭系列,該文章為該系列的第一篇文章。用于記錄項目開發(fā)過程。 ? ? ? ? 使用ESP32-CAM獲取圖像數(shù)據(jù),并通過RTSP協(xié)議將獲取到的視頻流傳輸?shù)缴衔粰C進行顯示。 ????????使用ESP32-CAM進行視頻推流,

    2024年02月11日
    瀏覽(121)
  • WebSocket 網(wǎng)絡協(xié)議(實時更新 )

    WebSocket 網(wǎng)絡協(xié)議(實時更新 )

    WebSocket 是一種在客戶端和服務器之間建立雙向通信信道的網(wǎng)絡協(xié)議。它在客戶端和服務器之間建立一個持久的、全雙工的連接,允許數(shù)據(jù)在兩個方向上實時傳輸,而不需要像HTTP一樣進行多次請求和響應。 ?WebSocket 的主要優(yōu)勢是減少了服務器和客戶端之間的通信延遲,因為數(shù)

    2024年01月17日
    瀏覽(24)
  • 【spring(六)】WebSocket網(wǎng)絡傳輸協(xié)議

    【spring(六)】WebSocket網(wǎng)絡傳輸協(xié)議

    ??鍵盤敲爛,年薪30萬?? 目錄 核心概要: 概念介紹: 對比HTTP協(xié)議:? WebSocket入門案例:? websocket對比http ? ? ? ? WebSocket是Web服務器的一個組件,WebSocket是一種基于TCP的新的 網(wǎng)絡傳輸協(xié)議 ,它實現(xiàn)了瀏覽器與服務器全雙工通信——瀏覽器只需要完成 一次握手 ,兩者之

    2024年02月05日
    瀏覽(20)
  • 網(wǎng)絡協(xié)議與攻擊模擬-21-HTTP協(xié)議

    網(wǎng)絡協(xié)議與攻擊模擬-21-HTTP協(xié)議

    1、 HTTP 協(xié)議結(jié)構(gòu) 2、在 Windows server 去搭建 web 服務器 3、分析 HTTP 協(xié)議流量 1、概念 HTTP (超文本傳輸協(xié)議)是用于在萬維網(wǎng)服務器上傳輸超文本( HTML )到本地瀏覽器的傳輸協(xié)議 屬于 TCP / IP 協(xié)議簇的一員( HTML 文件、圖片、查詢結(jié)構(gòu)等) 基于傳輸層 TCP 的80端口 2、萬維網(wǎng)服

    2024年02月16日
    瀏覽(92)
  • 網(wǎng)絡協(xié)議與攻擊模擬-05-ICMP協(xié)議

    網(wǎng)絡協(xié)議與攻擊模擬-05-ICMP協(xié)議

    1、理解 ICMP 協(xié)議 2、理解 ICMP 重定向 3、會使用 wireshark 分析 ICMP 重定向流量實驗 1、 ICMP 協(xié)議 Internet 控制報文協(xié)議,用于在 IP 主機、路由器之間傳遞控制消息,控制消息指網(wǎng)絡通不通、主機是否可達、路由是否可用等等. ICMP 是屬于網(wǎng)絡層的協(xié)議,封裝在傳輸層與網(wǎng)絡層之間

    2024年02月03日
    瀏覽(96)
  • 網(wǎng)絡協(xié)議與攻擊模擬-15-DNS協(xié)議

    網(wǎng)絡協(xié)議與攻擊模擬-15-DNS協(xié)議

    1、了解域名結(jié)構(gòu) 2、 DNS 查詢過程 3、在 Windows server 上部署 DNS 4、分析流量 實施 DNS 欺騙 再分析 1、概念 ● DNS ( domain name system )域名系統(tǒng),作為將域名的 IP 地址的相互映射關系存放在一個分布式的數(shù)據(jù)庫, DNS 使用是 UDP 的53端口 ●域名:由 ICANN 機構(gòu)統(tǒng)一管理 www.baidu.com w

    2024年02月12日
    瀏覽(89)
  • WebSocket | 基于TCP的全雙工通信網(wǎng)絡協(xié)議

    WebSocket | 基于TCP的全雙工通信網(wǎng)絡協(xié)議

    ???作者介紹:雙非本科大三網(wǎng)絡工程專業(yè)在讀,阿里云專家博主,專注于Java領域?qū)W習,擅長web應用開發(fā)、數(shù)據(jù)結(jié)構(gòu)和算法,初步涉獵Python人工智能開發(fā)和前端開發(fā)。 ??主頁:@逐夢蒼穹 ??所屬專欄:Java EE ? 您的一鍵三連,是我創(chuàng)作的最大動力?? WebSocket 是基于 TCP 的一

    2024年02月19日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包