【问题标题】:WebRTC: can data channel be used to signalling?WebRTC:数据通道可以用于信令吗?
【发布时间】:2012-11-29 07:29:18
【问题描述】:

我正在开发一个实现 webRTC 技术的项目,我想知道我是否可以使用数据通道来像 webSockets 那样发送信号,或者数据通道可以通过发送全局数据来替换对等连接,所以我需要使用 webSockets 来制作到服务器的信号部分?

【问题讨论】:

    标签: websocket webrtc


    【解决方案1】:

    其实答案是肯定的。

    让我详细说明一下:一旦连接了 PeerConnection(通过任何方式 - WebSockets、https 等),那么您可以重新协商(新的 CreateOffer/CreateAnswer/etc)并通过 DataChannel 发送它们。这意味着在某些情况下,重新协商明显更快,特别是对于两个端点都远离服务器的情况,或者如果两者都在同一个 LAN 中,等等(也降低了服务器上的负载,尽管这可能无关紧要,并且不依赖于维护呼叫状态的服务器。)

    您还可以通过 PeerConnection 使用 DataChannel 到充当会议中心或信令服务器的服务器,以用于重新协商(在会议中)以及与连接到中心或服务器的其他人建立连接。

    如果是“我想直接随机连接到其他人而不通过服务器”,答案是否定的;您首先需要一个连接的 PeerConnection。如果您想交换报价和​​答案,可以使用IPoAC。完成上述操作后,您可以使用 DataChannels(它可能会快一点)。

    【讨论】:

    • 我很想看到 ICE 与 IPoAC 一起使用......但最好保留它用于信号传输。
    【解决方案2】:

    我认为没有!!!

    因为第一次握手,你需要一个服务器来发信号。

    而且我认为如果没有握手,我们将无法使用 DataChannel 共享文本或文件。

    我对@9​​87654321@ 做了同样的事情! -- 见source code。我使用PubNub 进行信令和ICE交换。

    【讨论】:

    • 穆阿兹是对的。 DataChannel 是用于任意流数据通信的 API; RTCPeerConnection 用于音频和视频流。两者都需要通过 WebSocket 等其他机制交换媒体和网络信息来协调通信。
    【解决方案3】:

    正如jesup所说,答案是肯定的。

    信令可以通过任何传输进行。我建议使用 websockets,因为大多数 browsers support it

    如果您不想经历设置自己的信令服务器的麻烦,您可以使用 Pubnub 或 Pusher 为您处理。

    如果您有兴趣了解更多信息,请参阅webRTC signaling 教程。

    http://pusher.com/tutorials/webrtc_chat

    免责声明:我在 Pusher 工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多