如何使用 Coturn 和 oAuth 配置 WebRTC
How to configure WebRTC with Coturn and oAuth
我想使用 coturn with oAuth。如果我理解正确,我需要做两件事:
- 在数据库中存储 oAuth 令牌 coturn 正在使用
- 发送
ACCESS-TOKEN
和 USERNAME
STUN 属性
第一点很清楚,但我需要如何更改我的 WebRTC 客户端才能实现第二点?
如果没有 oAuth,我会像这样初始化我的 RTCPeerConnection
:
var configuration = {
'iceServers': [{
'url': 'turn:turn.example.org',
'username': 'user',
'credential': 'password'
}]
};
var pc = new RTCPeerConnection(configuration)
WebRTC 1.0 draft 定义了一个 RTCIceCredentialType
枚举,所以我想我需要像这样更改我的配置:
var configuration = {
'iceServers': [{
'url': 'turn:turn.example.org',
'username': 'kid',
'credential': 'oAuthToken',
'credentialType': 'token'
}]
};
使用 Wireshark 我看不到 ACESS-TOKEN
属性。任何想法或有人知道一个有效的例子吗?
自从提出原始问题后,情况似乎发生了一些变化。 webrtc-pc#1033 pull-request 更改规范并引入以下 iceServers
配置语法:
var configuration = {
'iceServers': [{
"urls": "turns:turn.example.net",
"username": "username",
"credential": {
"macKey": "...",
"accessToken": "..."
},
"credentialType": "oauth"
}],
...
}
有关更多配置示例,请参阅 RTCIceServer
文档页面。
我想使用 coturn with oAuth。如果我理解正确,我需要做两件事:
- 在数据库中存储 oAuth 令牌 coturn 正在使用
- 发送
ACCESS-TOKEN
和USERNAME
STUN 属性
第一点很清楚,但我需要如何更改我的 WebRTC 客户端才能实现第二点?
如果没有 oAuth,我会像这样初始化我的 RTCPeerConnection
:
var configuration = {
'iceServers': [{
'url': 'turn:turn.example.org',
'username': 'user',
'credential': 'password'
}]
};
var pc = new RTCPeerConnection(configuration)
WebRTC 1.0 draft 定义了一个 RTCIceCredentialType
枚举,所以我想我需要像这样更改我的配置:
var configuration = {
'iceServers': [{
'url': 'turn:turn.example.org',
'username': 'kid',
'credential': 'oAuthToken',
'credentialType': 'token'
}]
};
使用 Wireshark 我看不到 ACESS-TOKEN
属性。任何想法或有人知道一个有效的例子吗?
自从提出原始问题后,情况似乎发生了一些变化。 webrtc-pc#1033 pull-request 更改规范并引入以下 iceServers
配置语法:
var configuration = {
'iceServers': [{
"urls": "turns:turn.example.net",
"username": "username",
"credential": {
"macKey": "...",
"accessToken": "..."
},
"credentialType": "oauth"
}],
...
}
有关更多配置示例,请参阅 RTCIceServer
文档页面。