WebRTC 和身份验证实现

WebRTC and authentication implementations

好的,所以最近我需要使用 WebRTC 创建一个用于视频语音等的应用程序。

所以在查看了一些库之后,我发现 SimpleWebRTC 看起来非常方便: https://github.com/andyet/SimpleWebRTC

所以我感兴趣的是如何实现 STUN/TURN 服务器? (如果有人能用通俗易懂的英语解释其中的差异,那就太好了!)还有一个身份验证机制。目前我的应用程序联系我的数据库并登录用户等,但 stun 和 turn 服务器将是私有的,不会以任何方式参与身份验证过程。

所以基本上:

请注意,这是一个混合应用程序,因此我将为此使用 JavaScript/AngularJS。选择SimpleWebRTC的主要原因

谢谢!

我建议您使用现有的 STUN 或 TURN 服务器,例如 coturn

STUN 服务器非常轻量级,通常没有经过身份验证。 STUN 服务器基本上会告诉客户端它的 IP 地址是什么,这是跨 NAT(网络地址转换)边界建立对等连接所必需的。

TURN 服务器非常耗费资源,因为它们中继媒体;通话的所有媒体都可以通过 TURN 服务器,因此保护 TURN 非常重要。您在 UDP 可能被阻止的情况下使用 TURN 服务器,或者用于导致问题的特定类型的 NAT。

coturn 的 TURN 服务器的身份验证可以采用以下两种形式之一:

  1. 简单(用户名、密码)对
  2. TURN REST API。这使用 TURN 服务器和另一个实体之间的秘密。实体发布带有过期时间的令牌,TURN 服务器验证令牌没有过期并且是在知道共享秘密的情况下发布的。这由 TURN 客户端作为用户名、密码对以文档中描述的格式传递。