亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

webrtc學(xué)習(xí): 部署stun和turn服務(wù)器

系統(tǒng) 2185 0

[轉(zhuǎn)]webrtc學(xué)習(xí): 部署stun和turn服務(wù)器

http://www.cnblogs.com/lingdhox/p/4209659.html

?

webrtc的P2P穿透部分是由libjingle實(shí)現(xiàn)的.?

步驟順序大概是這樣的:?

1. 嘗試直連.

2. 通過(guò)stun服務(wù)器進(jìn)行穿透

3. 無(wú)法穿透則通過(guò)turn服務(wù)器中轉(zhuǎn).?

?

stun 服務(wù)器比較簡(jiǎn)單. 網(wǎng)上也有很多公開(kāi)的stun服務(wù)器可以用于測(cè)試. 例如?stun.ideasip.com

這里需要注意一下. 我在做android應(yīng)用時(shí). 在少數(shù)老舊的手機(jī)上出現(xiàn)過(guò)一個(gè)bug:?

PeerConnection close時(shí)非常慢. 大概需要50~80s.?

后來(lái)反復(fù)檢查, 才發(fā)現(xiàn)問(wèn)題出在公用的stun服務(wù)器響應(yīng)比較慢.?

解決辦法就是在自己搭一個(gè)stun服務(wù)器即可.?

具體原因應(yīng)該是: 一直在進(jìn)行ice探測(cè)(stun bind request). 關(guān)閉的時(shí)候worker 線程因?yàn)榫W(wǎng)絡(luò)卡住了, 然后main線程等待. 這個(gè)不太好查. 可能需要打很多l(xiāng)og來(lái)定位代碼.?

?

無(wú)法穿透的時(shí)候就需要 turn 服務(wù)器來(lái)保證視頻通話(huà)的成功率.?

turn 包含了stun的功能. 所以只需要部署turn服務(wù)器即可.?

服務(wù)器代碼可以從這里獲取:?https://code.google.com/p/coturn/

coturn 在原來(lái)的turnserver上增加了一些高級(jí)特性. (這是作者的描述, 兩個(gè)項(xiàng)目是同一個(gè)作者. 作者更推薦使用coturn).?

coturn ?支持tcp, udp, tls, dtls 連接.

coturn 支持linux bsd solaris mac os. 暫不支持windows (未來(lái)會(huì)支持)

下面說(shuō)一下安裝和配置.?

1. coturn 的底層網(wǎng)絡(luò)部分依賴(lài)libevent. ?所以需要先安裝libevent2, 地址在此?http://libevent.org/

2. coturn的安裝很簡(jiǎn)單. configure make make install 三部曲就完事了.?

3. coturn的文檔說(shuō)明挺詳細(xì)的. 但比較多. 我只是大概說(shuō)明下.?

更具體的說(shuō)明可以看 源碼目錄下的README.turnserver?README.turnadmin?README.turnutils

?

在bin目錄下生成六個(gè)可執(zhí)行文件

turnadmin turnutils_peer turnutils_stunclient
turnserver turnutils_rfc5769check turnutils_uclient

turnserver 就是我們需要的服務(wù)器.?

turnadmin 用來(lái)管理賬戶(hù).?

turnutils_stunclient 用于測(cè)試stun服務(wù)

turnutils_uclient 用于測(cè)試turn服務(wù). 模擬多個(gè)UDP,TCP,TLS or DTLS 類(lèi)型的客戶(hù)端

?

example 目錄主要是示范如何配置和使用turn. 包含一些測(cè)試用例.?

example/etc 下是pem證書(shū)和conf配置文件

example/var/db 下是sqlite的db庫(kù). 用于示范數(shù)據(jù)庫(kù)的格式.

coturn 支持三種配置. 命令行, conf文件和數(shù)據(jù)庫(kù). 數(shù)據(jù)庫(kù)支持sqlite, mysql, postgresql, MongoDB,?redis.

?

examples\scripts 下一些測(cè)試用例:?

loadbalance 示范如何進(jìn)行負(fù)載均衡. ?設(shè)置一個(gè)master turn server 然后配置若干個(gè)slave turn server.?

longtermsecure 示范如何使用long-term 驗(yàn)證

longtermsecuredb 與?longtermsecure 類(lèi)似, 不過(guò)是從數(shù)據(jù)庫(kù)配置

shorttermsecure 示范如何使用short-term驗(yàn)證.?

restapi 示范了web方面的使用.?

?

stun 定義了兩種驗(yàn)證方式.?

      Long-Term Credential
    
      Short-Term Credential
      

具體可以參考stun標(biāo)準(zhǔn)?http://tools.ietf.org/html/rfc5389#section-15.4

但是對(duì)于webrtc而言. 僅支持long-term .?

?

http://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf
TURN REST Server API

這個(gè)PDF 描述了. turn服務(wù)器和客戶(hù)端的交互流程.

?

4. 簡(jiǎn)單的使用

turnserver -o -a -f -v --mobility -m 10 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 --user=ling2:ling1234 -r demo

-m 10 表示啟動(dòng)十個(gè)relay線程.?

當(dāng)TURN Server用于WebRTC時(shí),必須使用long-term credential mechanism, ?即指定 -a 或者 --lt-cred-mech

--max-bps=100000 限制最大速度為100KB/s.?

添加了兩個(gè)用戶(hù)ling 和ling2.?

可以直接使用turnutils_uclient -u ling -w ling1234 來(lái)測(cè)試.?turnutils_uclient 有很多參數(shù)可以配置的.?

1
2
3
4
5
webrtc::PeerConnectionInterface::IceServer turnServer;
turnServer.uri = "turn:ip";
turnServer.username = "ling";
turnServer.password = "ling1234";
servers.push_back(turnServer);

c++ webrtc中可以這樣配置turn. web/android/ios 也是類(lèi)似的.?

如果從安全性方面考慮. 可以為賬戶(hù)生成key, 這樣就可以直接通過(guò)key登錄. 而不需要提供密碼.?

key 通過(guò)turnadmin生成, 需要(username, password, realm) . realm是啟動(dòng)turn server時(shí)-r 參數(shù)指定的.?

例如這樣:?

1
2
turnadmin -k -u ling -p ling1234 -r demo
0xccba8f3a6a025a38eb4a0e795fc92705

?

webrtc學(xué)習(xí): 部署stun和turn服務(wù)器


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 黑人巨大vs日本人优 | 色久阁 | 天天综合日日噜噜噜 | 久久久久久久久久综合情日本 | 热玖玖 | 亚洲国产系列一区二区三区 | 亚洲国产成人超福利久久精品 | 精品久久一区 | 国产福利在线播放 | 九九九精品在线观看 | 久久成人乱小说 | 奇米伊人| 伊人首页 | 久久久久久夜精品精品免费啦 | 久操小视频| 手机看片日韩日韩国产在线看 | 国产成人精品影院狼色在线 | 国产福利视精品永久免费 | 中文字幕亚洲图片 | 国产成人午夜精品5599 | 九七97影院理论片手机在线观看 | 日产一一到六区麻豆 | 九九精品99久久久香蕉 | 欧美操片在线观看 | 99热在线免费观看 | 成人香蕉 | 精品综合一区二区三区 | 深夜影院老司机69影院 | 色拍自拍亚洲综合在线 | 色网址在线 | 国产三级做爰在线观看∵ | 精品 日韩 国产 欧美在线观看 | 国产精品v免费视频 | 欧美日韩高清在线观看一区二区 | 国产成人啪精品 | a在线观看免费视频 | 欧美视频一区二区三区 | 天天干天天操天天碰 | 天天玩天天操 | 九九在线精品视频xxx | ww.久久|