连接问题webRTC应用程序。仅适用于本地,不适用于移动设备

问题描述 投票:0回答:1

非常感谢您在此问题上的帮助。不知道如何继续。

[尝试制作webRTC应用。信令服务器是Node.js上的WebSocket。由于某种原因无法与手机建立连接。使用-或-尝试使用coturn。我不确定问题出在客户端,还是服务器端@ coturn中继服务器。

在我的情况下,呼叫者是位于稳压器路由器后面的PC,被呼叫者是移动电话,转弯和Websocket是公开的。

///CLIENTS BOTH CALLER and CALLEE
async function createPeerConnection() {
  log("Setting up a connection...");
  const iceConfig = {
    "iceServers": [{
      "urls": "stun:mycoturn.online:5349",
      "username": "guest",
      "credential": "password"
    }
    ,{
      "urls": "turn:mycoturn.online:5349",
      "username": "guest",
      "credential": "password"
    }]
  }

  myPeerConnection = new RTCPeerConnection(
  // {
  //   iceServers: [    
  //     {
  //       urls: "stun:stun1.l.google.com:19302",
  //       username: "",
  //       credential: ""
  //     }
  //   ]
  // }
   iceConfig
  );

  myPeerConnection.onicecandidate = handleICECandidateEvent;
  myPeerConnection.oniceconnectionstatechange = handleICEConnectionStateChangeEvent;
  myPeerConnection.onicegatheringstatechange = handleICEGatheringStateChangeEvent;
  myPeerConnection.onsignalingstatechange = handleSignalingStateChangeEvent;
  myPeerConnection.onnegotiationneeded = handleNegotiationNeededEvent;
  myPeerConnection.ontrack = handleTrackEvent;
}

[... Some code]

function handleICECandidateEvent(event) {
  // if (event.candidate) {
    log("*** Outgoing ICE candidate: ");
    sendToServer({
      type: "new-ice-candidate",
      target: targetId,
      candidate: event.candidate,
      id: clientID
    });
  // }
}

async function handleNewICECandidateMsg(msg) {
  var candidate = msg.candidate;

  log("*** Adding received ICE candidate: " + JSON.stringify(candidate));
  try {
    await myPeerConnection.addIceCandidate(candidate)
  } catch(err) {
    reportError(err);
  }
}

最后一次从主叫方和被叫方发送的候选者为null(候选者:null),并且两者都由addIceCandidate(candidate)相加

[被叫方获得候选事件“ candidate:null”后,被叫方获得“ handleICEConnectionStateChangeEvent:失败”最终我在控制台中收到此错误消息:

ICE失败,您的TURN服务器似乎已损坏,有关更多详细信息,请参阅about:webrtc

这是我通过公共google stun服务器以及我的同班转身眩晕/转身收到的最终且唯一的错误消息。

我应该提供哪些有意义的信息?我应该在哪里搜索错误?真的不知道。

非常感谢干杯

webrtc coturn
1个回答
0
投票

第一件事。

您必须检查您的转弯服务器(coTURN)是否运行良好。

进行检查,请转到Trickle ICE

  1. 删除默认的Google stun服务器,并添加您的转弯服务器信息。

  2. 在ICE选项部分选择中继选项。

  3. 单击“收集候选人”按钮。

如果您可以找到具有“ rtp中继”组件类型的候选人,则您的转弯服务器运行良好。

因此,如果没有候选人,则必须修理您的转向服务器。

如果不是,则必须修复您的信令服务器或客户端。

© www.soinside.com 2019 - 2024. All rights reserved.