2014-03-06 92 views
19

我正在開發一個webrtc應用程序,並且必須實現以下TURN服務器。爲WebRTC應用程序實現我們自己的STUN/TURN服務器

https://code.google.com/p/rfc5766-turn-server/

我下面這個教程。

http://www.dialogic.com/den/developer_forums/f/71/t/10238.aspx

,它說引用TURN服務器如下,在其中創建RTCPeerConnection JavaScript代碼。

var pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"}, 
    {"url":"turn:[email protected]<turn_server_ip_address>", "credential":"my_password"}]}; 

pc_new = new webkitRTCPeerConnection(pc_config); 

我有點困惑,爲什麼我們要引用Google的公共STUN服務器。我認爲RFC5766 TURN服務器裏面有STUN。

RFC5766只是TURN服務器嗎?而不是STUN服務器?我們不能使用我們自己的STUN服務器而不是使用Google提供的服務器嗎?

對不起,這個天真的問題。我是WebRTC的新手。

謝謝。

回答

14

因爲它是STUN的擴展,所以TURN服務器也具有STUN功能。

https://code.google.com/p/rfc5766-turn-server/作品也作爲STUN,所以你可以嘗試寫這樣的事:

var pc_config = {"iceServers": [{"url":"turn:[email protected]<turn_server_ip_address>", "credential":"my_password"}]}; 

pc_new = new webkitRTCPeerConnection(pc_config); 
20

只是添加到伊戈爾的回答,

coturnrfc5766-turn-server叉,核心功能是一樣的,具有額外的功能,並添加了新的功能,所以我建議你使用它。

在作者自己的話說:

This project evolved from rfc5766-turn-server project (https://code.google.com/p/rfc5766-turn-server/). There are many new advanced TURN specs which are going far beyond the original RFC 5766 document. This project takes the code of rfc5766-turn-server as the starter, and adds new advanced features to it.

至於安裝,很容易在Linux機器上,在其他操作系統沒有嘗試安裝。

簡單的方法:

sudo apt-get install coturn 

如果你說沒有,我想要最新的前沿,你可以從他們的downloads page下載源代碼,自行安裝,例如:

sudo -i  # ignore if you already in admin mode 
apt-get update && apt-get install libssl-dev libevent-dev libhiredis-dev make -y # install the dependencies 
wget -O turn.tar.gz http://turnserver.open-sys.org/downloads/v4.5.0.6/turnserver-4.5.0.6.tar.gz  # Download the source tar 
tar -zxvf turn.tar.gz  # unzip 
cd turnserver-* 
./configure 
make && make install 

爲運行TURN,建議將其作爲守護進程運行,並且可以使用此wiki作爲配置參考。運行TURN服務器

樣本命令:

sudo turnserver -a -o -v -n --no-dtls --no-tls -u test:test -r "someRealm" 

命令描述:

  • -a - 使用長期證書機制
  • -o - 運行服務器進程作爲守護
  • -v - '中等'詳細模式。
  • -n - 沒有配置文件
  • --no-DTLS - 不要啓動DTLS聽衆
  • --no-TLS - 不要啓動TLS聽衆
  • -u - 使用
  • 用戶憑據
  • -r - 默認領域使用,需要TURN REST API

現在你可以使用TURN服務器在您的WebRTC應用爲:

var peerConnectionConfig = { 
    iceServers: [{ 
    urls: YOUR_IP:3478, 
    username: 'test', 
    password: 'test' 
    }] 
} 
+0

工作就像一個魅力! – Ernest

+3

「someRealm」代表什麼? – Loint

+1

「someRealm」代表什麼? –

相關問題