我正在尝试在两个对等端之间建立点对点音视频连接。请参考 入门WebRTC。
在我的家庭局域网环境中,2台电脑之间可以正常工作,但在公司的局域网环境中运行时会出现错误消息,其中一部分是javascript相关的。
function processSignalingMessage(message) {
var msg = JSON.parse(message);
if (msg.type === 'offer') {
// Callee creates PeerConnection
if (!initiator && !started)
maybeStart();
// We only know JSEP version after createPeerConnection().
if (isRTCPeerConnection)
pc.setRemoteDescription(new RTCSessionDescription(msg));
else
pc.setRemoteDescription(pc.SDP_OFFER,
new SessionDescription(msg.sdp));
doAnswer();
} else if (msg.type === 'answer' && started) {
pc.setRemoteDescription(new RTCSessionDescription(msg));
} else if (msg.type === 'candidate' && started) {
var candidate = new RTCIceCandidate({
sdpMLineIndex : msg.label,
candidate : msg.candidate
});
pc.addIceCandidate(candidate);
} else if (msg.type === 'bye' && started) {
onRemoteHangup();
}
}
当第一个用户收到消息 "type":"candidate" 时,出现错误
部分控制台日志:
- 创建 PeerConnection
- 使用配置创建 webkitRTCPeerConnnection "{"iceServers":[{"url":"stun:stun.l.google.com:19302"}]}"
- 添加本地流
- 向对等方发送答案
- 接收到消息: {"type":"candidate","label":0,"id":"audio","candidate":"a=candidate:1613033416 1 udp 2113937151 192.168.1.233 56946 typ host generation 0\r\n"}
- 未捕获的 SyntaxError: 在 'RTCPeerConnection' 上执行 'addIceCandidate' 失败:无法添加 ICE 候选项
- 接收到消息: {"type":"candidate".......}
- 未捕获的 SyntaxError: 在 'RTCPeerConnection' 上执行 'addIceCandidate' 失败:无法添加 ICE 候选项
- 接收到消息: {"type":"candidate".......}
- 未捕获的 SyntaxError: 在 'RTCPeerConnection' 上执行 'addIceCandidate' 失败:无法添加 ICE 候选项