欧美日韩国产一区,亚洲一区视频,色综合久久久久,私密按摩师舌头伸进去了,99re6这里只有精品,夜夜性日日交xxx性hd

微信小程序網絡之WebSocket(場景篇)(6)

  • • 發表于 8年前
  • • 作者 Fredia
  • • 4508 人瀏覽
  • • 6 條評論
  • • 最后編輯時間 8年前
  • • 來自 [技 術]

原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處

此篇適合對新手講解對WebSocket的理解以及應用
小程序WebSocket:官方文檔

維基百科對WebSocket的解釋:https://zh.wikipedia.org/wiki/WebSocket
至于HTTP協議就不多說了

1.WebSocket 是什么

WebSocket一種在單個 TCP 連接上進行全雙工通訊的協議。WebSocket通信協議于2011年被IETF定為標準RFC 6455,并被RFC7936所補充規范,WebSocketAPI被W3C定為標準。WebSocket 是獨立的、創建在 TCP 上的協議,和 HTTP 的唯一關聯是使用 HTTP 協議的101狀態碼進行協議切換,使用的 TCP 端口是80,可以用于繞過大多數防火墻的限制。
WebSocket 使得客戶端和服務器之間的數據交換變得更加簡單,允許服務端直接向客戶端推送數據而不需要客戶端進行請求,在 WebSocket API 中,瀏覽器和服務器只需要完成一次握手,兩者之間就直接可以創建持久性的連接,并允許數據進行雙向傳送。
目前常見的瀏覽器如 Chrome、IE、Firefox、Safari、Opera 等都支持 WebSocket,同時需要服務端程序支持 WebSocket。

官方解釋其實很簡介明了,對WebSocket就是:
WebSocket 是一種協議,基于 TCP 協議;HTTP 也是一種協議,基于 TCP 協議。互相協調促進,相輔相成的倆基友。WebSocket不是HTTP協議,HTTP只負責建立WebSocket連接。

2.WebSocket 理解誤區

1.WebSocket APIHTML5 標準的一部分, 但這并不代表 WebSocket 一定要用在 HTML 中,或者只能在基于瀏覽器的應用程序中使用。
2.WebSocket 與Nodejs沒有必然存在關系,nodejs只是實現更便捷

3.WebSocket 使用場景

原文翻譯:開源中國
WebSockets支持及時數據交換,并被所有現代瀏覽器支持。

1.社交訂閱

對社交類的應用的一個裨益之處就是能夠即時的知道你的朋友正在做什么。雖然聽起來有點可怕,但是我們都喜歡這樣做。你不會想要在數分鐘之后才能知道一個家庭成員在餡餅制作大賽獲勝或者一個朋友訂婚的消息。你是在線的,所以你的訂閱的更新應該是實時的。

2.多玩家游戲

網絡正在迅速轉變為游戲平臺。在不使用插件(我指的是Flash)的情況下,網絡開發者現在可以在瀏覽器中實現和體驗高性能的游戲。無論你是在處理DOM元素、CSS動畫,HTML5的canvas或者嘗試使用WebGL,玩家之間的互動效率是至關重要的。我不想在我扣動扳機之后,我的對手卻已經移動位置。

3.協同編輯/編程

我們生活在分布式開發團隊的時代。平時使用一個文檔的副本就滿足工作需求了,但是你最終需要有一個方式來合并所有的編輯副本。版本控制系統,比如Git能夠幫助處理某些文件,但是當Git發現一個它不能解決的沖突時,你仍然需要去跟蹤人們的修改歷史。通過一個協同解決方案,比如WebSocket,我們能夠工作在同一個文檔,從而省去所有的合并版本。這樣會很容易看出誰在編輯什么或者你在和誰同時在修改文檔的同一部分。

4.點擊流數據

分析用戶與你網站的互動是提升你的網站的關鍵。HTTP的開銷讓我們只能優先考慮和收集最重要的數據部分。然后,經過六個月的線下分析,我們意識到我們應該收集一個不同的判斷標準——一個看起來不是那么重要但是現在卻影響了一個關鍵的決定。與HTTP請求的開銷方式相比,使用Websocket,你可以由客戶端發送不受限制的數據。想要在除頁面加載之外跟蹤鼠標的移動?只需要通過WebSocket連接發送這些數據到服務器,并存儲在你喜歡的NoSQL數據庫中就可以了(MongoDB是適合記錄這樣的事件的)。現在你可以通過回放用戶在頁面的動作來清楚的知道發生了什么。

5.股票基金報價

金融界瞬息萬變——幾乎是每毫秒都在變化。我們人類的大腦不能持續以那樣的速度處理那么多的數據,所以我們寫了一些算法來幫我們處理這些事情。雖然你不一定是在處理高頻的交易,但是,過時的信息也只能導致損失。當你有一個顯示盤來跟蹤你感興趣的公司時,你肯定想要隨時知道他們的價值,而不是10秒前的數據。使用WebSocket可以流式更新這些數據變化而不需要等待。

6.體育實況更新

現在我們開始討論一個讓人們激情澎湃的愚蠢的東西——體育。我不是運動愛好者,但是我知道運動迷們想要什么。當愛國者在打比賽的時候,我的妹夫將會沉浸于這場比賽中而不能自拔。那是一種瘋狂癡迷的狀態,完全發自內心的。我雖然不理解這個,但是我敬佩他們與運動之間的這種強烈的聯系,所以,最后我能做的就是給他的體驗中降低延遲。如果你在你的網站應用中包含了體育新聞,WebSocket能夠助力你的用戶獲得實時的更新。

7.多媒體聊天

視頻會議并不能代替和真人相見,但當你不能在同一個屋子里見到你談話的對象時,視頻會議是個不錯的選擇。盡管視頻會議私有化做的“不錯”,但其使用還是很繁瑣。我可是開放式網絡的粉絲,所以用WebSockets getUserMedia API和HTML5音視頻元素明顯是個不錯的選擇。WebRTC的出現順理成章的成為我剛才概括的組合體,它看起來很有希望,但其缺乏目前瀏覽器的支持,所以就取消了它成為候選人的資格。

8.基于位置的應用

越來越多的開發者借用移動設備的GPS功能來實現他們基于位置的網絡應用。如果你一直記錄用戶的位置(比如運行應用來記錄運動軌跡),你可以收集到更加細致化的數據。如果你想實時的更新網絡數據儀表盤(可以說是一個監視運動員的教練),HTTP協議顯得有些笨拙。借用WebSocket TCP鏈接可以讓數據飛起來。

9.在線教育

上學花費越來越貴了,但互聯網變得更快和更便宜。在線教育是學習的不錯方式,尤其是你可以和老師以及其他同學一起交流。很自然,WebSockets是個不錯的選擇,可以多媒體聊天、文字聊天以及其它優勢如與別人合作一起在公共數字黑板上畫畫…

4.WebSocket 相對HTTP優勢

1.Header

服務器與客戶端之間交換的數據包檔頭很小,而HTTP的Header數據包很大,而實際有效數據只占其三分之一,所以可以很高的提高傳輸效率,

2.服務器推送

服務器可以主動傳送數據給客戶端,具有主動性,而非HTTP的被動型。

5.WebSocket 請求如何辨別

對于 WebSocket 來說,它必須依賴 HTTP 協議進行一次握手,握手成功后,數據就直接從 TCP 通道傳輸,與 HTTP 無關了。
先看其request和response消息頭:
瀏覽器請求

GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: example.com
Origin: null
Sec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==
Sec-WebSocket-Version: 13

服務器回應

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s=
Sec-WebSocket-Origin: null
Sec-WebSocket-Location: ws://example.com/

Upgrade: websocket向服務器聲明此請求為ws請求。
但是要注意的,這個websocket協議也需要服務端的設計支持。

WebSocket 跟其他 API 比較不一樣的是,它不僅僅依賴于瀏覽器支持,同時要求服務器和代理(假若需要經過代理的話)支持。WebSocket 本質上跟 HTTP 完全不一樣,只不過為了兼容性,WebSocket 的握手是以 HTTP 的形式發起的,如果服務器或者代理不支持 WebSocket,它們會把這當做一個不認識的 HTTP 請求從而優雅地拒絕掉。

6.WebSocket 與HTTP如何相輔相成

先根據業務了解:
短連接
連接->傳輸數據->關閉連接 HTTP是無狀態的,瀏覽器和服務器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連接。短連接是連接后發送后接收完數據后馬上斷開連接。
長連接
連接->傳輸數據->保持連接 -> 傳輸數據-> 。。。N。。。。 ->關閉連接。 長連接指建立連接后不管是否使用都保持連接,但安全性較差。

綜上:Websocket是一個持久化的協議,相對于HTTP這種非持久的協議來說。

最常見的HTTP 1.1中的AJAX 一個post對應 一個response,n個請求就得n個post+n個response。
即使有個keep-alive,在一個HTTP連接中,可以發送多個Request,接收多個Response。但是請記住 Request = Response , 在HTTP中永遠是這樣,也就是說一個request只能有一個response。而且這個response也是被動的,不能主動發起。
就算是AJAX輪詢,本質也是被動的。

所以持久化與非持久化都是根據具體業務的要求,并沒有誰絕對好壞,相互結合應用,更能提高網站的效率!!!在微信小程序里面同理。

分享到:
6條評論
Ctrl+Enter
作者

Fredia

Fredia

APP:1 帖子:12 回復:30 積分:552

已加入社區[3109]天

CTOWAY

作者詳情》
Top