XirSys我什么时候可以申请新的Ice服务器?

时间:2014-11-17 14:52:34

标签: networking webrtc turn

所以我完全理解如何通过你的演示使用getIceServers,但是在服务器端/编译客户端实现的最佳实践是什么?
"此令牌只应在安全的环境中实现,例如服务器端应用程序或编译的客户端应用程序。"

IceServers列表是否会在某个时候到期?我应该在每个页面请求上请求新的IceServers,还是将列表缓存X个时间量?

1 个答案:

答案 0 :(得分:3)

Ice Server凭据在大约10秒后过期。因为您希望保护您的XirSys秘密令牌安全(因此没有人可以破解您的帐户的连接分配),您将要为ice服务器做出后端/服务器端卷曲请求。它假设您的应用使用自己的身份验证。即,它会拒绝任何未经过身份验证的https://yourdomain.com/ajax/get-ice-servers请求。

所以......每当你需要创建一个PeerConnection对象时,通过Ajax调用得到一个Ice服务器列表......

    var pc = RTCPeerConnection(
        getIceServers(),
        {optional: []}
    );

其中......

    function getIceServers() {
        var result = jQuery.ajax({
            async: false,
            url: "https://" + yourDomain + ".com/ajax/get-ice-servers"
        }).responseText;

        return JSON.parse(result);

   }

请注意,您需要一个同步ajax请求,以便getIceServers()函数在实例化RTCPeerConnection之前返回结果。

另请注意,如果您在页面加载时自动启动webRTC连接,那么您可能只需使用服务器卷曲请求中的iceServers结果。