您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 facebook身份未驗證怎么解決(由WebRTC談起)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-31 12:08:15【】5人已围观

简介    創建了WebSocket后,會有一個HTTP請求發送到服務器以發起連接。取得服務器響應后,建立的連接使用HTTP升級,從HTTP協議交換為WebSock

    創建了WebSocket后,會有一個HTTP請求發送到服務器以發起連接。取得服務器響應后,建立的連接使用HTTP升級,從 HTTP協議 交換為 WebSocket協議 。WebSocket使用了自定義的協議,未加密的連接不再是 買粉絲:// ,而是 ws:// ,默認端口為 80 ;加密的連接也不是 買粉絲s:// ,而是 wss:// ,默認端口為 443 。即,使用標準的HTTP服務器無法實現WebSocket,只有支持WebSocket協議的服務器才能正常工作。一旦WebSocket連接建立后,后續數據都以 幀序列 的形式傳輸。

    WebSocket協議的特點包括:

    (1)建立在 TCP 協議之上。

    (2)與 HTTP 協議有著良好的兼容性。握手階段采用 HTTP 協議,默認端口也是80和443,因此握手時不容易屏蔽,能通過各種 HTTP 代理服務器。

(3)數據格式比較輕量,性能開銷小,通信高效。如何體現通信高效?WebSocket通信格式沒有HTTP協議那么多的固定報頭,且不用重復建立連接。

(4)可以發送文本,也可以發送二進制數據。

(5)沒有同源限制,客戶端可以與任意服務器通信。(什么是同源限制?協議相同,域名相同,端口相同。目的是為了保證用戶信息的安全,防止惡意的網站竊取數據。)

(6)協議標識符是ws(如果加密,則為wss),服務器買粉絲就是 URL。

(7)WebSocket通信協議于2011年被IETF定為標準RFC 6455,WebSocket API被W3C定為標準。

WebSocket如何實現長鏈接 ?創建了WebSocket后,會有一個HTTP請求發送到服務器以發起連接。取得服務器響應后,建立的連接使用HTTP升級,從HTTP協議交換為WebSocket協議。只需要一次成功的HTTP握手,服務端會一直保留握手成功時的信息,直到客戶端或服務端關閉請求。WebSocket之所以能持久連接原因是它運行在TCP協議上,TCP協議自身是長連接協議,所以WebSocket當然可以長連接啦。

WebSocket如何管理連接 ?RFC6455-5.5意見稿指明:WebSocket協議定義了Control Frame 控制幀。WebSocket的控制幀有: Close 、 Ping 、 Pong 。

Close幀 :發起關閉請求;

Ping幀 :通信發起方確認鏈路是否暢通的報文;

Pong幀 :通信接收方回應鏈路是否暢通的報文。

WebSocket在建立連接之后,通信的基本數據幀格式如下圖(來源RFC6455-5.2)沒有Http協議那么多固定的報頭,且不用重復建立連接,所以通信效率高:

WebSocket連接的生命周期:

CONNECTING :使用Http發起請求,RFC6455-4( 買粉絲s://tools.ietf.org/買粉絲/rfc6455#section-4 )規定了Client和Server的報文格式。Server在響應時使用Http狀態碼是101(切換協議)。在握手時,WebSocket連接處于CONNECTING狀態。

OPEN :握手成功之后,進入OPEN狀態。

CLOSING :如果一方發起了CLOSE幀,那么便標志著WebSocket連接進入了CLOSING狀態;

CLOSED :當TCP連接關閉之后,那么WebSocet連接便進入了CLOSED狀態。

三、WebRTC

    名稱源自 網頁實時通信 (Web Real-Time Communication)的縮寫,是谷歌2010年以6820萬美元收購Global IP Solutions公司而獲得的一項技術,由Google、Mozilla和Opera等支持的、免費的開放式項目。通過簡單的API為瀏覽器和移動應用程序提供跨平臺的 音視頻實時通信 (RTC:Real-Time Communications )功能。WebRTC使得開發者在瀏覽器無需安裝任何插件就可以實現音視頻通信。

    WebRTC提供了跨平臺的音視頻核心技術,包括音視頻的采集、編解碼、網絡傳輸、顯示等功能,支持的平臺:Windows、Linux、Mac、Android及iOS。RTCPeerConnection是用于進行WebRTC調用以流式傳輸視頻和音頻以及交換數據的API,WebRTC使用RTCPeerConnection(對等連接)在瀏覽器之間傳遞 流數據 ,但也需要一種協調通信和發送控制消息的機制,這一過程稱為 信令 。信令處理過程需要客戶端之間來回傳遞消息,這個過程在WebRTC里面是沒有實現的,需要自己創建。即WebRTC未指定信令方法和協議,需要開發者確保使用安全協議。所有WebRTC組件都必須進行加密,即 WebRTC是安全的 (如何保證安全?)。WebRTC這種技術可以讓開發者的精力集中在用戶體驗上而不是媒體流本身,因為API就會處理好媒體引擎的相關工作。

參考連接: 買粉絲://買粉絲.sohu.買粉絲/a/275427719_458408

提案連接: 買粉絲s://買粉絲.w3.org/2011/04/webrtc/wiki/images/5/5c/WebRTCWG-2018-06-19.pdf

如何保證安全 :當連通性檢測完成后,WebRTC會開啟 DTLS (Datagram TLS)握手,用于協商出SRTP中加密RTP包的 對稱秘鑰 。該過程稱為DTLS-SRTP,保證了數據傳輸的安全性。

參考: 買粉絲s://imweb.io/topic/5a4a6cb2a192c3b460fce37f

RTP/RTCP 和 SRTP/SRTCP協議是什么?參考: 買粉絲s://blog.csdn.買粉絲/thinkerleo1997/article/details/80233530

基本概念:

SDP : 即會話描述協議(Session Description Proto買粉絲l ),主要保存當前會話的媒體和傳輸信息,其中媒體信息包括 媒體類型 、 傳輸協議 、 媒體格式 等,傳輸信息包括媒體的遠程 地址信息 、 帶寬 等;它由多行KV格式的文本信息組成,具體可參考這里( 買粉絲s://tools.ietf.org/pdf/draft-nandakumar-rtcweb-sdp-08.pdf )。WebRTC通過 信令 建立一個SDP握手的過程,只有通過SDP握手,雙方才知道對方的信息,這是建立p2p通道的基礎。

Offer : 通信的發起方對自己的sdp描述

Answer : 通信的接收方對自己的sdp描述

信令 :協商通信過程,傳遞基本的數據信息,其中包括SDP描述信息、會話控制信息(節點加入、退出及各類的業務控制信息等)、網絡信息、錯誤信息等。是指控制建立連接和斷開連接的狀態的數據。在建立連接之前,信令必須發生在 帶外 (通過服務器),但一旦建立連接,就可以通過已經建立的通道發送更新信令(如掛斷)。(這里要了解一下什么叫“帶外(OOB:Out-Of-Band)”,百度百科: 買粉絲s://ke..買粉絲/item/out-of-band/15801641?fr=aladdin )

OOB概述 :傳輸層協議使用 帶外數據 (out-of-band,OOB)來發送一些重要的數據,如果通信一方有重要的數據需要通知對方時,協議能夠將這些數據快速地發送到對方。為了發送這些數據,協議一般不使用與 普通數據 相同的通道,而是使用另外的通道。linux系統的套接字機制支持低層協議發送和接受帶外數據。但是TCP協議沒有真正意義上的帶外數據。為了發送重要協議,TCP提供了一種稱為 緊急模式 (urgent mode)的機制。TCP協議在數據段中設置 URG 位,表示進入緊急模式。接收方可以對緊急模式采取特殊的處理。很容易看出來,這種方式數據不容易被阻塞,并且可以通過在我們的服務器端程序里面捕捉 SIGURG 信號來及時接受數據。

信令通道 :與服務端建立連接和斷開連接的通道,對于WebRTC而言就是信令通道。

STUN 服務器:是用來取外網地址的。

TURN 服務器:是在P2P失敗時進行轉發的,中繼轉發。

STUN 和 TURN 服務器的作用主要處理打洞與轉發,配合完成 ICE協議 。

ICE :Interactive Connectivity Establishment,交互式連接建立。

WebRTC通信

基于WebRTC的點對點音視頻通信流程如下:

1)客戶端A初始化本地音視頻設備,創建一個用于Offer的SDP對象,該對象中保存當前音視頻的相關信息;

2)客戶端A通過信令服務器將SDP信息發送給客戶端B;

3)客戶端B接收到A的SDP信息后保存,初始化本地音視頻設備并創建用于Answer的SDP對象;

4)客戶端B通過信令服務器將SDP信息發送給客戶端A;

5)客戶端A、B通過交換SDP等信息,建立P2P通道進行音視頻傳輸;

示意圖如下圖所示:

WebRTC ICE(交互式連接建立)(ICE:Interactive Connectivity Establishment)

    以下是呼叫信令期間發生的消息交換的高級過程,即: WebRTC 信令交互流程圖 :

開始

##關鍵詞

--[SOMETHING]-->:表示從主叫方發送給被叫方的“SOMETHING”類型的消息。另一解釋是: 主叫方所要執行操作 。

<--[SOMETHING]--:表示從被叫方發送給主叫方的“SOMETHING”類型的消息。另一解釋是: 被叫方所要執行的操作 。

SS (Signal Service):通過服務器發送的信息(通過BCM 服務器發送的信息)

DC (Data Channel):通過WebRTC 數據通道 發送的消息

### Message Exchange / State Flow Overview (消息交換/狀態流概述)

|          C

很赞哦!(76234)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:宁夏中卫沙坡头区

工作室:小组

Email:[email protected]