1.turn协议实现
1.1 协议规定的流程
为了在服务器上创建分配资源,客户端需要使用 Allocate去请求创建;
- 客户端向服务器发送
Allocate request
请求,并且服务器回复一个分配成功响应(Allocate success response
)(第一次的请求是会返回401失败),其中包含分配的中继(relayed)传输地址;客户端可以在Allocate 请求的attributes
中描述添加想要的属性(例如:分配的生命周期)。因为中继数据具有安全隐患,服务器现在要求客户端携带验证内容,通常使用 STUN 的长期凭证机制,以表明它被授权使用服务器。 - 一旦分配了中继传输地址,客户端必须保持这个Allocate存活。为此,客户端需要定期发送一个对服务器的刷新请求。TURN 使用不同的方法(刷新而不是分配)进行刷新,以确保如果服务分配的资源因某种原因消失,则通知客户端。
刷新事务的频率由配的生命周期确定。分配的默认生命周期是10 分钟-- 一般这个值被选择得足够长,这样的刷新频率不会造成客户端的负担,同时对于意外过期客户能及时退出的分配的资源。
但是,客户端可以在分配请求中请求更长的生命周