<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] 參考鏈接:[http://www.hmoore.net/vim26/v1/578933](http://www.hmoore.net/vim26/v1/578933), [https://www.wware.org/wide/yw/backups/turnserverconfig.html](https://www.wware.org/wide/yw/backups/turnserverconfig.html) ## STUN/TURN服務器搭建 rfc5766-turn-server : google研發 **coTurn**: rfc5766的升級版。 ResTurn:比較老的Turn服務 ## coTurn ### 安裝 ### coTurn配置 ``` listening-port=3478 #指定真挺的端口 external-ip=39.105.185.198 #指定云主機的公網IP地址 user=aaa:bbb ## 訪問 stun/turn服務的用戶名和密碼 realm=stun.xxx.cn ## 域名, 這個一定要設置 ``` ##### 啟用turnserver服務 在啟用coturn之后,需要修改一些配置。打開SSH終端輸入以下命令打開配置文件: ``` vim /etc/turnserver/turnserver.conf ``` 修改或添加如下內容 : ``` #中繼服務器監聽的IP地址,直接寫公網IP地址,可以指定多個IP listening-ip=60.70.80.91 #中繼服務器轉發地址(本地IP地址將用于傳遞數據包的給每個端),和監聽地址一樣 relay-ip=60.70.80.91 #外部IP,直接寫公網IP地址 external-ip=60.70.80.91 #打開fingerprint的注釋,使用長期證書機制。 fingerprint #打開密碼驗證,使用短期證書機制。 lt-cred-mech #服務器名稱,用于OAuth認證,默認和realm相同,直接填公網ip.部分瀏覽器本段不設可能會引發cors錯誤。 server-name=60.70.80.91 # TURN REST API的長期憑證機制范圍,同樣設為ip,同server-name. realm=60.70.80.91 #移動的ICE(MICE)的規范支持。 mobility #快捷的添加用戶是使用user=XXX:XXXX的方式,可以添加多個。/var/db/turndb也工作,可以使用turnadmin來管理其中用戶,可以添加多個。 user=test:test ``` 如果服務器是NAT網絡環境,請按如下內容修改?: ``` #中繼服務器監聽的IP地址,NAT環境下直接寫私網IP地址,可以指定多個IP listening-ip=0.0.0.0 #中繼服務器轉發地址(本地IP地址將用于傳遞數據包的給每個端),和監聽地址一樣 #relay-ip=60.70.80.91 #外部IP,NAT環境下直接寫:公網IP/私網IP external-ip=192.168.1.13/192.168.1.13 #打開fingerprint的注釋,使用長期證書機制。 fingerprint #打開密碼驗證,使用短期證書機制。 lt-cred-mech #服務器名稱,用于OAuth認證,默認和realm相同,直接填公網ip.部分瀏覽器本段不設可能會引發cors錯誤。 server-name=192.168.1.13 # TURN REST API的長期憑證機制范圍,同樣設為ip,同server-name. realm=192.168.1.13 #移動的ICE(MICE)的規范支持。 mobility #快捷的添加用戶是使用user=XXX:XXXX的方式,可以添加多個。/var/db/turndb也工作,可以使用turnadmin來管理其中用戶,可以添加多個。 user=test:test ``` 啟動: ``` turnserver -c /etc/turnserver/turnserver.conf ``` 可以使用一段簡單的檢查代碼,檢查代碼如下,直接在chrome瀏覽器的console執行即可: ``` function checkTURNServer(turnConfig, timeout){ return new Promise(function(resolve, reject){ setTimeout(function(){ if(promiseResolved) return; resolve(false); promiseResolved = true; }, timeout || 5000); var promiseResolved = false , myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection //compatibility for firefox and chrome , pc = new myPeerConnection({iceServers:[turnConfig]}) , noop = function(){}; pc.createDataChannel(""); //create a bogus data channel pc.createOffer(function(sdp){ if(sdp.sdp.indexOf('typ relay') > -1){ // sometimes sdp contains the ice candidates... promiseResolved = true; resolve(true); } pc.setLocalDescription(sdp, noop, noop); }, noop); // create offer and set local description pc.onicecandidate = function(ice){ //listen for candidate events if(promiseResolved || !ice || !ice.candidate || !ice.candidate.candidate || !(ice.candidate.candidate.indexOf('typ relay')>-1)) return; promiseResolved = true; resolve(true); }; }); } checkTURNServer({ url: 'turn:192.168.1.13', username: 'test', credential: 'test' }).then(function(bool){ console.log('is TURN server active? ', bool? 'yes':'no'); }).catch(console.error.bind(console)); ``` 將第二段的地址換為真實地址,用戶名密碼修改為真實的即可 使用上面的檢查代碼,檢查,返回is TURN server active? yes說明正確,返回no說明有錯誤。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看