前端時間安裝stun服務器,由於公司沒有開外網的端口映射,所以沒有搭建成功。但是單純的stun服務器搭建成功了
現在有兩個問題:
1)stun服務扮演什麼角色?
2)流媒體數據的傳輸方式
3)erizo-controler的作用?
首先回答問題2),上傳一張wireshark的截圖
在這張圖中,10.2.31.80是我搭建的Licode服務器,10.134.244.200是我本地的機器,從圖中可以看出,數據直接傳到了licode的服務器,應該是erizo的wokrer,我讓我其他幾位同事可以連接了Licode服務器,截圖如下
這張圖裏,可以看到10.2.31.80g給我本機轉了多路的rtp數據,
所以可以看到,起碼有一條路:流媒體數據是通過erizo服務器中轉過來的。
那麼這個流程是怎樣的呢?客戶端和服務器直接是怎麼相互發現?端口號怎麼確定?怎麼協商媒體信息?stun服務在這其中扮演什麼角色?erizo-controler?nuve?這些交互呢?下面一個一個的探索
首先是stun服務器的發現,通過抓包。發現stun服務器通過http協議有服務器給出:
這個好像是通過socket.io來獲取信息,那麼,服務器的組件中,誰擁有socket.io的能力呢?
???
拿到stun服務後,客戶端會和服務器連接
問題是,爲啥80服務也有stun服務?
在向stun服務器詢問了自己的端口後,客戶端會用這個udp端口,和服務器進行連接傳輸數據