如何将 RPi-WebRTC-Streamer 外部 IP 地址发送给 coTurn 服务器?

How to signal RPi-WebRTC-Streamer External IP address to the coTurn server?

目前,我的 RWS (RPi-WebRTC-Streamer) 应用程序可以在我的本地网络上运行。我现在正在尝试将它连接到我托管的 coTURN 服务器。

我的 main_rws_orig.js 指向我的 coTurn 服务器:

var localTestingUrl = "ws://10.0.0.11:8889/rws/ws";

//var pcConfig = {"iceServers": [{"urls": "stun:stun.l.google.com:19302"}]};

var pcConfig = {"iceServers": [{"urls": "stun:172.104.xxx.xxx:3478"}]};

正在使用https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 我在测试 TURN 和 STUN 时得到以下信息:

0.009 rtp 主机 3376904655 udp c7f50fee-cbd0-4332-ae51-a013c4d35c5e.local 41771 126 | 30 | 255

0.09​​1 rtp srflx 842163049 udp 42.116.95.19 41771 100 | 30 | 255

0.158 rtp 中继 3617893847 udp 172。104.xxx.xxx 17857 2 | 30 | 255 39.809 完成 39.811

我的 coTurn Web 配置工具也能正常工作。

我读过有关信令服务器的信息,但没有找到太多关于它的文档。我只是想弄清楚如何完成。如何使用 coturn 将我的 RWS 应用程序连接到外部世界。

任何提示或信息将不胜感激。

信令服务器基本上是一种在对话的对等方之间发送 ICE 候选者的服务。通常它使用 Websockets 进行这种通信。 ICE 候选人可能会在 JavaScript 中包含您提供给 WebRTC 对象的 CoTurn 服务器凭据。但是您需要在参与者之间共享所有候选人,为此您需要信令服务器。您可以使用任何支持完整 websockets 通信的语言,如 NodeJS 或 Java(不是 PHP!)。

看看这篇文章,它描述得很好:https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/#how-can-i-build-a-signaling-service

除非你明确想要使用Peer-To-Peer WebRTC,我建议你也看看Kurento Media Server的教程,以更好地理解这个原理,NodeJS/Java是signaling在 Kurento 和你的浏览器之间。请注意,通过使用媒体服务器,它将始终处于参与者之间,优点是减少每个参与者的网络使用量+在媒体服务器上记录整个对话,但也有缺点,如没有端到端加密.

NodeJS 示例:https://doc-kurento.readthedocs.io/en/6.14.0/tutorials/node/tutorial-one2one.html

Java 示例:https://doc-kurento.readthedocs.io/en/6.14.0/tutorials/java/tutorial-one2one.html