【问题标题】:Webrtc Data channel server to clientWebrtc 数据通道服务器到客户端
【发布时间】:2018-06-27 21:17:54
【问题描述】:

我正在尝试在客户端到服务器之间创建webrtc 数据通道。 (每个客户端之间的数据不同,所以我需要每个客户端到我的服务器之间的唯一连接)

经过一番研究,我得出结论,我需要使用转向服务器,当客户端连接到服务器端的转向服务器时,我需要充当另一个对等方并创建数据通道,至少我是这么认为的。

我不需要任何信号,只需要纯webrtc 连接。 我试图使用这个转服务器https://github.com/coturn/coturn 但我将非常感谢服务器到客户端数据通道的任何工作示例,而无需任何纯粹的webrtc 信号。 非常感谢!:)

【问题讨论】:

    标签: javascript html webrtc turn rtcdatachannel


    【解决方案1】:

    您需要一个信令服务器在浏览器和浏览器与之对话的任何对象之间交换 SDP,以便建立呼叫。 此信令服务器可以与您的媒体服务器相同 - 但并非必须如此。 如果您的媒体服务器位于开放的 Internet 上,则不需要 TURN 服务器。如果它位于另一个 NAT 之后,您将需要一个。

    【讨论】:

    • 正如您在上面的链接中看到的,信令也可以通过数据通道完成意味着整个连接是通过 WebRTC 并且服务器也充当对等点,这就是我想要的示例跨度>
    • 你确实明白那是我的网站并发布你指向这里 :-) 你可以使用数据通道来发送信号,但要打开它,你需要先做初始使用外部信号连接的连接 - 可能通过 websocket 或通过 HTTPS
    • 很好,我没注意到:)。但我确信有一种方法可以只使用 webrtc 在服务器和客户端之间建立连接,因为有些公司使用它来绕过 adblock 等。
    • 如果我使用转向服务器作为服务器端,然后当客户端连接到我的转向服务器时,我只是在获取客户端和服务器之间的连接。
    【解决方案2】:

    你错了……

    要启动 WebRTC,您需要一个信令服务器。为了能够将一个浏览器连接到另一个浏览器,您首先需要两个浏览器在它们之间交换 SDP blob。为此,您需要一些信令服务器来协调此过程(也称为 offer-answer)。

    一旦您通过信令服务器获取这些消息,您最终可能需要一个 TURN 服务器(并且很可能需要一个 STUN 服务器 - 您可以从大多数 TURN 服务器实现中免费获得)。如果浏览器无法直接进行点对点通信,TURN 服务器将中继您的数据通道的流量。

    有很多信令服务器可供您使用。这是一个尝试:https://github.com/feross/simple-peer

    【讨论】:

    • 首先,我非常感谢您的回答,但我认为您完全错了,因为我不希望浏览器到浏览器 WebRTC,而是服务器到浏览器数据通道,对于这种类型的通信,您不需要发信号。
    • 对于浏览器到浏览器,您确实需要 SDP,但是如果我使用转服务器而不是其他对等服务器,服务器将获取连接,这种连接有几种实现,但不幸的是没有打开来源。
    • 正如 Tsahi 解释的那样,即使您使用 WebRTC 将浏览器连接到服务器,您也需要信令。
    【解决方案3】:

    我完全理解你想在这里实现什么,事实上我们在项目中也有同样的要求。

    请看我在WebRTC Data Channel server to clients UDP communication. Is it currently possible?的答案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      相关资源
      最近更新 更多