9

我想将coturn 与 oAuth 一起使用。如果我理解正确,我需要做两件事:

  • 将 oAuth 令牌存储在 coturn 正在使用的数据库中
  • 发送ACCESS-TOKENUSERNAMESTUN 属性

第一点很清楚,但我需要如何更改我的 WebRTC 客户端才能实现第二点?

如果没有 oAuth,我会RTCPeerConnection像这样初始化我的:

var configuration = {
  'iceServers': [{
    'url': 'turn:turn.example.org',
    'username': 'user',
    'credential': 'password'
  }]
};
var pc = new RTCPeerConnection(configuration)

WebRTC 1.0 草案定义了一个枚举,RTCIceCredentialType所以我认为我需要像这样更改我的配置:

var configuration = {
  'iceServers': [{
    'url': 'turn:turn.example.org',
    'username': 'kid',
    'credential': 'oAuthToken',
    'credentialType': 'token'
  }]
};

使用 Wireshark 我看不到该ACESS-TOKEN属性。有什么想法或有人知道一个可行的例子吗?

4

1 回答 1

1

自从提出原始问题以来,情况似乎发生了一些变化。webrtc -pc#1033 pull-request 改变了规范并引入了以下iceServers配置语法:

var configuration = {
    'iceServers': [{
        "urls": "turns:turn.example.net",
        "username": "username",
        "credential": {
            "macKey": "...",
            "accessToken": "..."
        },
        "credentialType": "oauth"
    }],
    ...
}

有关更多配置示例,请参阅RTCIceServer文档页面。

于 2018-03-09T02:08:08.457 回答