首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从localDescription返回RTCPeerConnection

从localDescription返回RTCPeerConnection
EN

Stack Overflow用户
提问于 2022-07-23 13:02:14
回答 2查看 28关注 0票数 0

当我试图从下面的代码返回localDescription时,我会得到一个在sdp下不包含candidate参数的响应,如屏幕截图所示。

有谁能帮我理解我在这里错过了什么吗?

另外,我并不是故意使用conn.onicecandidate = evt => {}这样的东西,因为我直接想从下面的函数返回一个值。

代码语言:javascript
复制
async function getLocalDesc() {
  const conn = new RTCPeerConnection();
  conn.createDataChannel('');
  const offer = await conn.createOffer();
  await conn.setLocalDescription(offer);
  return conn.localDescription;
}

(async () => {
  console.log(await getLocalDesc())
})();

EN

回答 2

Stack Overflow用户

发布于 2022-07-23 14:49:54

冰候选人聚会需要时间,而你只需等待setLocalDescription,它就开始了这个过程。它不需要等待收集完成或任何候选,您需要等待candidate事件或gatheringstatechange事件(到已完成的gatheringState )才能包含候选文件。

但是,https://webrtchacks.com/trickle-ice/有一些关于为什么这不是一个好主意的细节。

票数 0
EN

Stack Overflow用户

发布于 2022-07-23 15:28:01

我们可以从我们的函数中返回一个承诺,它将提供所需的param,即candidate,一旦它得到解决。

代码语言:javascript
复制
async function getLocalDesc(){
    const conn = new RTCPeerConnection();
    conn.createDataChannel('');
    const offer =  await conn.createOffer();
    await conn.setLocalDescription(offer);
    return new Promise(resolve =>  conn.onicecandidate = event => resolve(event));
}

(async () => {
  console.log(await getLocalDesc())
})();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73090985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档