WebRTC(一)從了解三個方面的API開始

2021-10-06 05:56:25 字數 1166 閱讀 7396

webrtc是乙個由google發起的實時通訊解決方案,

webrtc 雖然底層實現極其複雜,但是面向開發者的api還是非常簡潔的,主要分為三個方面:

network stream api

rtcpeerconnection

datachannel

network stream api

主要有兩個api:mediastream與mediastreamtrack。

mediastreamtrack 代表一種單型別資料流(videotrack或audiotrack),

乙個mediastreamtrack代表一條**軌道,這給我們提供了混合不同軌道實現多種特效的可能性。

eg:localmediastream 表示來自本地**捕獲裝置(如網路攝像頭、麥克風等)的**流。

要建立和使用本地流,web應用程式必須通過 getusermedia() 函式請求使用者訪問。

一旦應用程式完成,它可以通過呼叫 localmediastream 上的 stop() 函式來撤銷自己的訪問許可權。

rtcpeerconnection

上面我們只是成功的拿到了mediastream流**物件,但是仍然僅限於本地檢視。

答案是我們必須建立點對點連線(peer-to-peer),這就是rtcpeerconnection要做的事情。

在此之前,我們得了解乙個概念:信令伺服器。

兩台公網上的裝置要互相知道對方是誰,需要有乙個中間方去協商交換它們的資訊。

信令伺服器幹的就是這個事情 —— 牽線搭橋。

一旦建立了對等連線,就可以將**流(臨時定義的 mediastream 物件)直接傳送到遠端瀏覽器。

datachannel

每個流實際上代表乙個單向邏輯通道,提供順序傳送的概念。

訊息序列可以有序或無序傳送。訊息傳遞順序僅保留給在同一流上傳送的所有有序訊息。

但是,datachannel api 已被設計為雙向的,這意味著每個 datachannel 都是由傳入和傳出sctp流的**組成的。

當在例項化的 peerconnection 物件上首次呼叫 createdatachannel() 函式時,將執行 datachannel 設定(即建立sctp關聯)。

隨後每次對 createdatachannel() 函式的呼叫都只會在現有sctp關聯內建立乙個新的 datachannel。

國內IT名企的三個方面的發展共性

在國內的it 界凡經歷了10 年以上時間考驗而不衰的企業都以經佔據了行業市場,例如華為 用友 周立功等公司。10 年是企業的年輪,20 年是企業成熟的標誌,就國內it 而言,20 年以上的企業少之又少,10 年以上的企業也並不多,這也是中國缺乏it 國際品牌的原因之一。it 行業本身就是乙個競爭激勵...

從三個方面理解ARM嵌入式系統

從硬體上,將基於cpu的處圍器件,整合到cpu晶元內部,比如早期基於x86體系結構下的計算機,cpu只是有運算器和累加器的功能,一切晶元要造外部橋路來擴充套件實現,象串列埠之類的都是靠外部的16c550 2的串列埠控制器晶元實現,而目前的這種串列埠控制器晶元早已整合到cpu內部,還有pc機有顯示卡,...

用例設計三個方面

1 有的錯誤是程式編寫有問題造成的,比如本來應該輸出整數結果輸出了字串,這種錯誤我們通常稱之為bug,bug是必須修復的。2 有的錯誤是使用者輸入造成的,比如讓使用者輸入email位址,結果得到乙個空字串,這種錯誤可以通過檢查使用者輸入來做相應的處理。3 還有一類錯誤是完全無法在程式執行過程中 的,...