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

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

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

如何使用WebRTC建立一個視頻會議App

 

本篇博文將會提供一個關于如何使用WebRTC建立一個視頻會議App的教程。

我們不會將其設計的太復雜,它將會是一個簡單的一對一視頻會議App,并且僅僅使用了WebRTC APIs和一些其他的library來建立一個信令服務器。

在開始之前,讓我們首先進行一個快速摘要簡述。

為此我們應該觀察如下WebRTC通信過程的圖。

如何使用WebRTC建立一個視頻會議App

 

WebRTC的通信過程可以看成如下三步:

1.瀏覽器獲取媒體設備(攝像頭和麥克風)。

2.通過信令過程,每一個peer和其它所有peer交換信息。

3.發信之后,peers可以直接連接,并開始通信交流。

為了實現這個過程,對于交換信息需要一個信令服務器。同樣需要一對STUN/TURN服務器來實現NAT穿透。并且在不能直接通信的情況下傳遞媒體。

讓我們轉到App設計的部分。

App

就如之前所說,我們將會建立一個簡單的一對一視頻會議App.它將會有一個房間功能,在每個房間將會主持不同的會議。

用戶首先看到一個需要輸入房間號的屏幕界面,可以是用戶想去的任意一個房間,接著當另一個用戶想要加入的時候,他可以輸入同樣的房間號來開始交流通話。

此教程的代碼在Github的一個公共目錄下可以查到,你可以克隆到你的電腦上或跟著文章在紙上描繪出來。

我們使用了JAVAScript作為編程語言,Node.JS作為運行引擎,所以如果你沒有的話可以安裝它。

讓我們從創建一個文件夾開始,這將會是我們的項目文件夾。接著在里面創建另一個名字叫做public的文件夾。現在使用命令行,轉到項目文件夾并將如下命令粘貼到命令行里來安裝所需。為了下載library需要確保網絡連接正常。

npm init -y
npm install -S express@4.15.4 socket.io@2.0.3

現在讓我們創建一個簡單的html文件。它將會包含兩個div元素,一個為了輸入房間號,另一個為了顯示視頻流。這個文件也會包含socket.io客戶端library腳本標簽,另一個文件我們之后會創建。

使用你最喜愛的文本編輯器,創建一個新文件,粘貼如下代碼并且保存在項目文件夾中,在public文件夾里保存為index.html文件。

如何使用WebRTC建立一個視頻會議App

 


如何使用WebRTC建立一個視頻會議App

 

很棒。下一步是創建一個客戶端的JavaScript文件。在這個文件中將會得到網頁元素就像div元素的引用,用戶用來輸入房間號的輸入文本,用戶點擊的按鈕,等等。接著我們聲明一些全局變量來存儲像房間號,本地和遠程視頻音頻流,和點點連接對象和使用的TURN/STUN服務器。

我們還會連接到socket.io服務器并添加一個點擊按鈕的事件,在這個事件中,我們向服務器發送一條創建或加入的信息。粘貼如下代碼到新文件中并且在public文件夾下保存為client.js文件。

如何使用WebRTC建立一個視頻會議App

 


如何使用WebRTC建立一個視頻會議App

 

在向服務器發送了初始信息之后,我們需要等待響應,我們可以在同一個client.js文件中建立一些event handlers.

當第一個參與者加入了會話,服務器創建一個新房間接著發送給用戶‘’加入‘’事件。接著對第二個參與者同樣如此:瀏覽器獲取媒體設備,存儲視頻音頻流,在屏幕上展示視頻,但是發生了另一個動作,一條‘’準備好了‘’的信息發送到了服務器端。添加如下代碼到client.js文件底部。

如何使用WebRTC建立一個視頻會議App

 

到目前為止第一步完成。

當第一個參與者接收到準備好了的信息時,它的反饋創建了一個RTCPeerConnection對象,設置對象的onicecandidate和onaddstream listeners為相應的onIceCandidate和onAddStream函數,我們之后將會重溫這些函數。最終它將本地流添加到了peer connection對象中。之后它準備一個請求,請求存儲在本地并通過setLocalAndOffer函數發送到服務器端。

服務器傳遞請求到第二個參與者,第二個參與者反過來在請求反饋方面做了同樣的事:創建了它自己的peer connection對象并且設置事件聽眾,接著存儲請求準備一個將會存儲在本地的應答,接著通過setLocalAndAnswer函數發送到服務器端。

和請求相似,服務器會將回答傳遞給第一個參與者。當發生這些時,兩個peers就在通過向服務器發送candidate信息交換icecandidates,服務器反過來傳遞它們給其它客戶端。Ice candidates被添加到每一個客戶端的peer connection 對象中。將如下代碼添加到client.js文件中。

如何使用WebRTC建立一個視頻會議App

 


如何使用WebRTC建立一個視頻會議App

 

第二步就此完成。

當一切準備就緒后,每一個peer接收遠程流,接著onAddStream函數將會將它顯示在屏幕上。以下是client.js文件中的函數。

如何使用WebRTC建立一個視頻會議App

 


如何使用WebRTC建立一個視頻會議App

 

現在我們完成了第三步。

然而我們的服務器還沒有完成。我們從詢問所需的library開始,并且在public文件夾中設置static host來服務客戶端文件。

接著我們使用socket.io定義信號處理 程序。首先我們會得到創建或加入事件,它們會統計房間中客戶端的數量。如果沒有用戶說明客戶端是第一個peer,因此向它發送一個創建事件。如果房間中已經存在了一個參與者,那么客戶端會被添加到房間中,并且向它發送加入事件。如果房間中已經有兩個用戶,那么這被認為是房間滿了的情況,因此不需要再添加客戶端。

這一連串的事件都是按照傳遞順序工作的,向房間中其它客戶端發送接收到的同樣的信息。創建一個新文件,粘貼如下代碼并保存它到項目文件夾下,名為server.js.

如何使用WebRTC建立一個視頻會議App

 


如何使用WebRTC建立一個視頻會議App

 

既然我們已經具備了所有所需的文件,我們已經準備好測試我們的應用了。在命令行,進入項目文件夾中并且輸入如下命令:

node server.js

接著使用 google Chrome or Mozilla Firefox,將此鏈接在兩個標簽下打開,確保你都輸入了同樣的房間號。

是不是很酷?

我們已經創建了我們的第一個視頻會議App.

分享到:
標簽:視頻會議 App
用戶無頭像

網友整理

注冊時間:

網站: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

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