WebRTC 和身份验证实现

use*_*190 0 stun webrtc angularjs turn simplewebrtc

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

因此,在查看了一些库之后,我发现 SimpleWebRTC 看起来非常漂亮:https : //github.com/andyet/SimpleWebRTC

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

所以基本上:

  • 什么是实现 STUN/TURN 的最佳方式
  • 有什么认证机制吗?

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

谢谢!

mat*_*ttm 6

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

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

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

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

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