9

oAuth で coturnを使いたい。私がそれを正しく理解していれば、次の 2 つのことを行う必要があります。

  • coturn が使用しているデータベースに oAuth トークンを保存する
  • ACCESS-TOKENおよびUSERNAMESTUN 属性の送信

最初のポイントは明確ですが、2 番目のポイントを達成するには 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プル リクエストは仕様を変更し、次のiceServers構成構文を導入します。

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

RTCIceServerその他の構成例については、ドキュメント ページを参照してください。

于 2018-03-09T02:08:08.457 に答える