Webrtc、websockets、Stun/turn 服务器,一起工作?

Posted

技术标签:

【中文标题】Webrtc、websockets、Stun/turn 服务器,一起工作?【英文标题】:Webrtc, websockets, Stun/turn server, working alltogether? 【发布时间】:2017-06-27 07:25:28 【问题描述】:

我正在尝试了解 webrtc 中 websocket 的使用,我创建了一个 websocket,并成功连接到它。 使用 stun 服务器获取设备的 IP 地址(哪些设备??) 它返回了我的冰候选人(我应该如何使用它们来连接我哥哥的手机??)

使用 stun 服务器 - stun:stun.l.google.com:19302

我了解 webrtc 捕获我们的视频/音频并创建对等连接(但它与谁建立对等连接,它向谁发送连接提议?websockets 是从哪里来的?websockets 必须做什么?玩,我必须使用 websocket 在服务器上注册每个用户吗?)

无法用外行的语言理解 websockets 的概念。

附:我使用来自网络的随机链接作为一些教程中的 websocket - https://appr.tc/join/ 我得到的响应已成功连接。

谢谢。

【问题讨论】:

【参考方案1】:

WebRTC 有以下两个主要 APIgetUserMedia : 用于捕获音频/视频等peerConnection : 使用信令消息(offer/answer/candidates)在对等方之间建立通信通道以传输媒体/数据。

因此,我们需要一个渠道在同行之间传递这些提议/答案/候选人。 WebRTC独立于这个通信通道,所以你可以选择像WebSocket/Ajax/RestAPI/IM...

首先尝试basic demo,它在没有任何信号通道的情况下工作,因为两个对等点都在同一个窗口中。 AppRTC 演示是基于房间的,双方都应该使用相同的 roomId,然后他们将与 WebSocket 交换消息。

所以在你的情况下,有一个简单的信号服务器设置, 所有对等点都将通过 WebSocket 连接到服务器。 如果您想与您的兄弟交谈,请创建报价并要求您的服务器将报价发送到您兄弟的 websocket 连接。 然后您的兄弟必须创建答案并通过服务器将其发送回您。 而且你们必须交换候选人。

只要网络正常,google stun server (stun:stun.l.google.com:19302) 就可以工作。如果您在复杂的 NAT 后面,那么您需要设置自己的 TURN 服务器。 Read more

More references

【讨论】:

我想出了这一切,这几乎就是我现在想出的(你解释得很清楚)。感谢您的链接以及我与兄弟交谈的方式;)

以上是关于Webrtc、websockets、Stun/turn 服务器,一起工作?的主要内容,如果未能解决你的问题,请参考以下文章

WebRTC/WebSocket 录屏

Websockets 比 WebRTC 快?

聊天使用啥协议? webRTC 或 Websockets

Webrtc、websockets、Stun/turn 服务器,一起工作?

websocket在webRTC中的作用是啥?

WebRTC:将房间添加到简单的 WebRTC 和 WebSocket 应用程序 - 需要建议