因此,我完全理解如何通过演示使用getIceServers,但在服务器端/编译客户端实现的最佳做法是什么?
“此标记只应在安全环境中实现,如服务器端应用程序或已编译的客户端应用程序。”XirSys我什么时候需要新的Ice服务器?
IceServers列表是否在某个时间点过期?我是否应该在每个页面请求上申请新的IceServers,还是将这个列表缓存X个时间?
因此,我完全理解如何通过演示使用getIceServers,但在服务器端/编译客户端实现的最佳做法是什么?
“此标记只应在安全环境中实现,如服务器端应用程序或已编译的客户端应用程序。”XirSys我什么时候需要新的Ice服务器?
IceServers列表是否在某个时间点过期?我是否应该在每个页面请求上申请新的IceServers,还是将这个列表缓存X个时间?
大约10秒后,Ice服务器凭证将过期。由于您希望保持您的XirSys秘密令牌安全(所以没有人可以破解您帐户的连接分配),因此您需要为冰服务器发出后端/服务器端curl请求。假定你的应用使用自己的认证。即,它会拒绝任何未经验证的请求到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结果。
服务器凭证的到期时间是否取决于“安全”参数? 两个不同的用户可以在到期前使用相同的凭据吗? – Readren