我打算为带有 coturn 的 WebRTC 应用程序运行我自己的 TURN 服务 - https://code.google.com/p/coturn/。该手册对身份验证和凭据进行了说明:
...
-a, --lt-cred-mech
Use long-term credentials mechanism (this one you need for WebRTC usage). This option can be used with
either flat file user database or PostgreSQL DB or MySQL DB or MongoDB or Redis for user keys storage.
...
此客户端代码示例还建议 TURN 需要凭据:
// use google's ice servers
var iceServers = [
{ url: 'stun:stun.l.google.com:19302' }
// { url: 'turn:192.158.29.39:3478?transport=udp',
// credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
// username: '28224511:1379330808'
// },
// { url: 'turn:192.158.29.39:3478?transport=tcp',
// credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
// username: '28224511:1379330808'
// }
];
- 他们总是需要吗?(Coturn 可以在没有任何身份验证机制的情况下运行,但从手册页中不清楚它是否是WebRTC 工作的严格要求)
- 如果需要,我可以只创建一组凭据并将其用于所有客户端吗?(客户端代码示例显然只是为了演示,但它似乎表明您可以将凭据硬编码到客户端代码中。如果这是不可能/推荐的,那么将适当的凭据传递给客户端的推荐方法是什么?客户端代码?)