日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

WebRTC vs WebSocket

1.什么是WebRTC?

WebRTC 是一組 JAVAScript API,可以在兩個瀏覽器之間建立點對點連接, 實現音頻和視頻等數據的傳輸,也可以用它創建有語音/視頻通話功能的應用程序。

WebRTC 的特別之處是:一旦建立了連接,就可以直接在瀏覽器之間實時傳輸數據,不需要借助服務器,因此降低了延遲,所以用戶都喜歡用 webRTC 直接傳輸音視頻。

 

在WebRTC誕生之前,開發實時音視頻應用的成本非常高,需要考慮的技術問題很多,如音視頻的編解碼數據傳輸延時、丟包、網絡抖動、回音處理和消除等,如果要兼容瀏覽器端的實時音視頻通信,還需要額外安裝插件。

可喜的是,現在幾乎所有主流瀏覽器都支持 WebRTC。 此外,還有針對不同平臺(例如 IOS 或 Android)的 WebRTC SDK。下面是WebRTC的瀏覽器支持情況:

WebRTC的瀏覽器支持情況

WebRTC 由以下關鍵組成部分:

  • RTCPeerConnection: 允許連接到遠程對等點,保持和監視連接,在連接完成后關閉。可通過如下方法快速創建RTCPeerConnection:
new RTCPeerConnection()
new RTCPeerConnection(configuration)
  • RTCDataChannel: 提供雙向網絡通信通道,允許對等方傳輸任意數據。通過RTCPeerConnection示例對象的createDataChannel方法快速創建RTCDataChannel對象
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = function (event) {
  console.log("received: " + event.data);
};
dc.onopen = function () {
  console.log("datachannel open");
};
dc.onclose = function () {
  console.log("datachannel close");
};
  • MediaStream: 旨在讓您從本地輸入設備(如相機和麥克風)訪問媒體流。 它用作管理數據流上的操作的一種方式,例如記錄、發送、調整大小和顯示流的內容。通過如下構造函數快速創建MediaStream實例。
const newStream = new MediaStream();
const newStream = new MediaStream(stream);
const newStream = new MediaStream(tracks[]);

2.什么是WebSocket?

WebSocket 是一種實時技術,可通過持久的單套接字socket連接在 Web 客戶端和 Web 服務器之間實現全雙工、雙向通信。

WebSocket 連接以 HTTP 請求/響應握手開始。 如果此初始握手成功,則客戶端和服務器已同意使用為 HTTP 請求建立的現有 TCP 連接作為 WebSocket 連接。 只要需要,這個連接就會一直保持活躍狀態,允許服務器和客戶端全雙工的發送數據。

什么是WebSocket?

WebSocket 包括兩個核心組成模塊:

  • WebSocket 協議: WebSocket 協議于 2011 年 12 月通過 RFC 6455 標準化,支持通過 Web 在 WebSocket 客戶端和 WebSocket 服務器之間進行實時通信。 它支持二進制數據和文本字符串的傳輸。
  • WebSocket API: 允許您管理 WebSocket 連接、發送和接收消息以及偵聽 WebSocket 服務器觸發的事件。

幾乎所有現代網絡瀏覽器都支持 WebSocket API,如下圖所示:

WebSocket瀏覽器支持情況

3.WebRTC的優點和缺點

3.1 WebRTC優勢

WebRTC的優勢主要集中在以下幾個方面:

WebRTC的3個主要優勢

  • 強大的安全保障: 通過 WebRTC 傳輸的數據在安全實時傳輸協議 (SRTP) 的幫助下進行加密和驗證。
  • 開源免費: 該項目得到了強大而活躍的社區的支持,同時Apple、google 和 Microsoft 等組織也積極參與。
  • 獨立于平臺和設備: WebRTC 應用程序可以在任何支持 WebRTC 的瀏覽器上運行,無論操作系統或設備類型如何。

3.2 WebRTC 缺點

WebRTC的的劣勢也很明顯,主要集中在以下幾個方面:

WebRTC 的3個主要缺點

  • 盡管 WebRTC 是一種點對點技術,您仍然需要管理 Web 服務器并為其付費。 為了使兩個對等點相互對話,您需要使用信令服務器來建立、管理和終止 WebRTC 通信會話。 在一對多的 WebRTC 廣播場景中,您可能需要一個 WebRTC 媒體服務器來充當媒體中間件。
  • WebRTC 非常占用 CPU,尤其是在處理視頻內容和大量用戶時。 這使得使用和擴展 WebRTC 應用程序成本高昂且困難重重。
  • WebRTC 很難上手。 您需要探索和掌握大量概念:各種 WebRTC 接口、編解碼器和媒體處理、網絡地址轉換 (NAT) 和防火墻、UDP(WebRTC 使用的主要底層通信協議)等等。

WebRTC的peerjs庫可以用于快速實現Peer-to-peer通信!

4.WebSocket的優缺點

4.1 WebSocket 優勢

在 WebSocket 出現之前,AJAX 長輪詢和 Comet 等 HTTP 技術是構建實時應用程序的標準。 與 HTTP 相比,WebSocket 無需為每個請求建立新連接,從而大大減少了每條消息的大小(無 HTTP Header)。 與 HTTP 相比,這有助于節省帶寬、改善延遲并減少服務器端的 WebSockets 負擔。

作為一種事件驅動技術,WebSocket 允許在無需客戶端主動請求的情況下傳輸數據。 在客戶端需要對事件(無法預測的事件,例如欺詐警報)做出快速反應的情況下有優勢。

4.2 WebSocket 缺點

  • WebSocket 是有狀態的: 這可能很難處理,尤其是在規模上,因為它需要服務器層跟蹤每個單獨的 WebSocket 連接并維護狀態信息。
  • 當連接終止時,WebSockets 不會自動恢復:這就是存在許多 WebSocket 庫的部分原因。
  • 代理服務器的公司網絡:會阻止 WebSocket 連接。

5.WebRTC vs WebSockets:主要區別是什么?

WebSocket 提供客戶端、服務端通信協議,而 WebRTC 為瀏覽器和移動應用程序提供點對點協議和通信功能。

WebSocket 在 TCP 上工作,而 WebRTC 主要在 UDP 上。

當數據完整性至關重要時,WebSocket 是更好的選擇,因為您可以從 TCP 的底層可靠性中獲益。 而,如果速度更重要并且丟失一些數據包是可以接受的,WebRTC是更好的選擇。

WebRTC 主要設計用于流式傳輸音頻和視頻內容。 也可以使用 WebSockets 流式傳輸媒體,但 WebSocket 技術更適合使用 JSON 等格式傳輸文本/字符串數據。

5.1 什么時候使用 WebRTC?

WebRTC 是以下用例的不錯選擇:

  • 音頻和視頻通信
  • 文件共享
  • 屏幕共享
  • 直播活動
  • 物聯網設備(例如,無人機或嬰兒監視器流式傳輸實時音頻和視頻數據)

5.2 什么時候使用 WebSocket?

們可以將 Web Sockets 用例大致分為兩個不同的類別:

  • 實時更新:其中通信是單向的,服務器正在將低延遲(頻繁的)更新流式傳輸到客戶端。
  • 雙向通信,客戶端和服務器都發送和接收消息。包括聊天、虛擬活動等。 WebSockets 還可用于支持多用戶同步協作功能,例如多人同時編輯同一文檔。

5.3 什么時候用WebRTC和WebSocket組合?

WebSockets 和 WebRTC 是互補的技術。 如前所述,WebRTC 允許點對點通信,但它仍然需要服務器,以便這些點可以通過稱為信令的過程協調通信。 通常,信令涉及傳輸信息,例如媒體元數據(例如,編解碼器和媒體類型)、網絡數據(例如,主機的 IP 地址和端口)以及用于打開和關閉通信的會話控制消息。

需要牢記的關鍵一點:WebRTC 不提供標準的信令實現,允許開發人員為此目的使用不同的協議。 WebSocket 協議通常用作 WebRTC 應用程序的信號機制,允許對等點實時交換網絡和媒體元數據。

6.總結

本文重點論述了WebRTC 、WebSocket協議,兩者的異同、使用場景、以及何時可以組合使用。關于WebRTC、WebSocket,筆者已經編寫過至少3篇文章進行了重點論述,如果有需求可以直接點擊文末的資料即可。

參考資料

WebRTC已成為HTML5標準?是時候開始學習了?

HTTP、WebSocket、gRPC 或 WebRTC:哪種協議最適合您的應用程序?

WebRTC成為HTML5標準?SDP、STUN、TURN你想知道的都在這里!

https://ably.com/topic/webrtc-vs-websocket

分享到:
標簽:WebRTC
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定