因此,我完全理解如何通过演示使用getIceServers,但是在服务器端/编译的客户端实现的最佳实践是什么呢?
“此令牌只应在安全环境中实现,例如服务器端应用程序或已编译的客户端应用程序。”
IceServers的列表会在某个时候过期吗?我应该在每个页面请求中请求新的IceServers,还是将列表缓存X个时间?
发布于 2014-11-18 21:26:48
冰服务器凭据在大约10秒后过期。因为您希望保持您的XirSys秘密令牌的安全(因此没有人可以黑您帐户的连接分配),所以您需要为冰服务器发出后端/服务器端卷曲请求。假设您的应用程序使用了自己的身份验证。也就是说,它将拒绝对https://yourdomain.com/ajax/get-ice-servers的任何未经身份验证的请求。
所以..。每当您需要创建一个PeerConnection对象时,通过Ajax调用获取一个冰服务器列表.
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连接,那么您可能只需使用来自服务器curl请求的iceServers结果即可。
https://stackoverflow.com/questions/26975341
复制相似问题