簡體   English   中英

在無法訪問 Internet 的本地網絡中運行具有 WebRTC 的應用程序

[英]Running an application with WebRTC within a local network that doesn't have internet access

我希望在一個項目中使用 WebRTC,在該項目中我需要從一台計算機、一個帶有 wifi 熱點和 USB 攝像頭的機器人,通過本地網絡到另一台計算機,一個 Z594C103F2C6E04C3D8AB059F031 的機器人。 在這種情況下,兩台計算機都是單板計算機,視頻 stream 是單向的。 我還希望兩台計算機在兩個方向上相互通信數據。 我在研究中發現了 WebRTC,它似乎具有我正在尋找的這兩個功能。

從演示 NodeJS 程序的初始測試來看,WebRTC 似乎幾乎正是我正在尋找的。 不過,我一直試圖克服的一個大問題是,默認情況下,它似乎需要在兩個客戶端之間使用在線信號服務器。 我研究並發現可以使用第三台計算機在本地網絡中創建信令服務器,但這樣的設置不適合我的項目。

我研究了其他解決方案並遇到了OpenVidu ,它實現了 WebRTC,但允許將信令服務器內置到其中一台客戶端計算機中(至少這是我在另一個堆棧溢出帖子中讀到的內容)。 我還沒有測試這個工具,看看它是否能解決我的問題,但我目前被項目使用的 docker 映像阻止,不支持我的單板計算機使用的 ARM 處理器,因此需要特殊安裝。

在我 go 通過該過程可能會或可能不會工作之前,我想問是否有另一種更簡單的解決方案來運行 WebRTC 沒有互聯網訪問和不需要第三台計算機作為信令服務器,或者是否有任何關於 ZD80313011414CBC6172 以外的工具的建議對我的申請會更好。 我對這項技術非常陌生,肯定會錯過一個簡單的或現有的解決方案。 對此問題的任何幫助將不勝感激。

對於那些好奇的人,正在使用的單板計算機是 NVidia Jetson Nanos。

找到了解決方案。 使用Google Codelabs 示例,修復只涉及刪除配置中的默認 ice 服務器。 本質上,這意味着改變

const config = {
  iceServers: [
    {urls: ["stun:stun.l.google.com:19302"]}
  ]
}

const config = {
  iceServers: []
}

你可以在你的局域網上運行本地turnserver。 這非常簡單直接。 檢查這個在此處輸入鏈接描述

安裝后運行

turnserver -p 19302

現在你的配置文件:

const config = {
  iceServers: [
    {urls: ["stun:<<YOUR HOST IP>>:19302"]}
  ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM