9b9t服务器显示连接超时,在WebRTC中ICE连接失败

9b9t服务器显示连接超时,在WebRTC中ICE连接失败我们正在尝试将浏览器(客户端)与aiortc库(服务器,发送单个视频流)连接起来。目前,连接已成功建立(onsignalingstatechange稳定)。但是,媒体连接从未建立,因为ICE连接失败。这两台主机在同一个局域网上,并且已经验证了直接连接。使用的STUN服务器是STUN.l。谷歌:19302.在服务器上的日志如下:DEBUG:asyncio:Usingselector:Epol…

大家好,又见面了,我是你们的朋友全栈君。

我们正在尝试将浏览器(客户端)与aiortc库(服务器,发送单个视频流)连接起来。目前,连接已成功建立(on signalingstatechange稳定)。但是,媒体连接从未建立,因为ICE连接失败。这两台主机在同一个局域网上,并且已经验证了直接连接。使用的STUN服务器是STUN.l。谷歌:19302. 在

服务器上的日志如下:DEBUG:asyncio:Using selector: EpollSelector

DEBUG:ice:Connection(0) protocol(0) connection_made(<_selectordatagramtransport fd=”11″ read=”idle” write=”<idle,” bufsize=”0″>>)

DEBUG:ice:Connection(0) protocol(0) > (‘66.102.1.127′, 19302) Message(message_method=Method.BINDING, message_class=Class.REQUEST, transaction_id=b’\xb1\x1f\xdek(\x9c\x10\xe8\x86\xd1Wn’)

DEBUG:ice:Connection(0) protocol(0) < (‘66.102.1.127′, 19302) Message(message_method=Method.BINDING, message_class=Class.RESPONSE, transaction_id=b’\xb1\x1f\xdek(\x9c\x10\xe8\x86\xd1Wn’)

Raw messages:

SDP offer:

v=0

o=- 7142951019689507792 2 IN IP4 127.0.0.1

s=-

t=0 0

a=group:BUNDLE video

a=msid-semantic: WMS

m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 123 127 122 125 107 108 109 124

c=IN IP4 0.0.0.0

a=rtcp:9 IN IP4 0.0.0.0

a=ice-ufrag:A5nH

a=ice-pwd:P0LIjOkkOl/wTtup5n1JA1mC

a=ice-options:trickle

a=fingerprint:sha-256 E3:8E:87:44:E8:D3:A7:02:C0:70:EA:D8:7F:84:F6:80:17:42:33:07:D8:C3:5D:44:FF:DC:25:4C:68:7E:09:19

a=setup:actpass

a=mid:video

a=extmap:2 urn:ietf:params:rtp-hdrext:toffset

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=extmap:4 urn:3gpp:video-orientation

a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay

a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type

a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing

a=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07

a=recvonly

a=rtcp-mux

a=rtcp-rsize

a=rtpmap:96 VP8/90000

a=rtcp-fb:96 goog-remb

a=rtcp-fb:96 transport-cc

a=rtcp-fb:96 ccm fir

a=rtcp-fb:96 nack

a=rtcp-fb:96 nack pli

a=rtpmap:97 rtx/90000

a=fmtp:97 apt=96

a=rtpmap:98 VP9/90000

a=rtcp-fb:98 goog-remb

a=rtcp-fb:98 transport-cc

a=rtcp-fb:98 ccm fir

a=rtcp-fb:98 nack

a=rtcp-fb:98 nack pli

a=fmtp:98 profile-id=0

a=rtpmap:99 rtx/90000

a=fmtp:99 apt=98

a=rtpmap:100 H264/90000

a=rtcp-fb:100 goog-remb

a=rtcp-fb:100 transport-cc

a=rtcp-fb:100 ccm fir

a=rtcp-fb:100 nack

a=rtcp-fb:100 nack pli

a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f

a=rtpmap:101 rtx/90000

a=fmtp:101 apt=100

a=rtpmap:102 H264/90000

a=rtcp-fb:102 goog-remb

a=rtcp-fb:102 transport-cc

a=rtcp-fb:102 ccm fir

a=rtcp-fb:102 nack

a=rtcp-fb:102 nack pli

a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f

a=rtpmap:123 rtx/90000

a=fmtp:123 apt=102

a=rtpmap:127 H264/90000

a=rtcp-fb:127 goog-remb

a=rtcp-fb:127 transport-cc

a=rtcp-fb:127 ccm fir

a=rtcp-fb:127 nack

a=rtcp-fb:127 nack pli

a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f

a=rtpmap:122 rtx/90000

a=fmtp:122 apt=127

a=rtpmap:125 H264/90000

a=rtcp-fb:125 goog-remb

a=rtcp-fb:125 transport-cc

a=rtcp-fb:125 ccm fir

a=rtcp-fb:125 nack

a=rtcp-fb:125 nack pli

a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f

a=rtpmap:107 rtx/90000

a=fmtp:107 apt=125

a=rtpmap:108 red/90000

a=rtpmap:109 rtx/90000

a=fmtp:109 apt=108

a=rtpmap:124 ulpfec/90000

SDP answer:

v=0

o=- 3760099490 3760099490 IN IP4 0.0.0.0

s=-

t=0 0

a=group:BUNDLE video

a=msid-semantic:WMS *

m=video 36695 UDP/TLS/RTP/SAVPF 96 97 100 101 127 122

c=IN IP4 147.175.160.240

a=sendonly

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=mid:video

a=msid:25c4a009-f81c-4fe7-b811-a39c525da778 6ffba6fa-08fb-401f-9555-8df85942bd71

a=rtcp:9 IN IP4 0.0.0.0

a=rtcp-mux

a=ssrc-group:FID 461163217 873864728

a=ssrc:461163217 cname:{af4834d3-8db4-41cc-a9cd-6565cb8d82bd}

a=ssrc:873864728 cname:{af4834d3-8db4-41cc-a9cd-6565cb8d82bd}

a=rtpmap:96 VP8/90000

a=rtcp-fb:96 nack

a=rtcp-fb:96 nack pli

a=rtcp-fb:96 goog-remb

a=rtpmap:97 rtx/90000

a=fmtp:97 apt=96

a=rtpmap:100 H264/90000

a=rtcp-fb:100 nack

a=rtcp-fb:100 nack pli

a=rtcp-fb:100 goog-remb

a=fmtp:100 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42001f

a=rtpmap:101 rtx/90000

a=fmtp:101 apt=100

a=rtpmap:127 H264/90000

a=rtcp-fb:127 nack

a=rtcp-fb:127 nack pli

a=rtcp-fb:127 goog-remb

a=fmtp:127 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42e01f

a=rtpmap:122 rtx/90000

a=fmtp:122 apt=127

a=candidate:a2cdfa74ef4f12d00d150bfa588cf805 1 udp 2130706431 147.175.160.240 36695 typ host

a=candidate:237395b2276e331724a06e8dbed92f44 1 udp 1694498815 147.175.160.240 36695 typ srflx raddr 147.175.160.240 rport 36695

a=end-of-candidates

a=ice-ufrag:IHJz

a=ice-pwd:RNwQMxbAm2EjNIBxklFZKd

a=fingerprint:sha-256 9B:BB:E0:63:DE:5D:BC:1F:CC:A2:FA:FA:0B:29:EB:F1:46:24:D6:A4:E7:9C:B3:C1:50:9D:A3:FB:83:EC:74:2D

a=setup:active

{“candidate”:”candidate:1963203886 1 udp 2113937151 147.175.160.205 36583 typ host generation 0 ufrag A5nH network-cost 999″,”sdpMid”:”video”,”sdpMLineIndex”:0,”type”:”candidate”}

服务器代码:

^{pr2}$

前端代码(重要部分):var configuration = { iceServers: [

{urls: ‘stun:stun.l.google.com:19302’}]

};

this.pc = new RTCPeerConnection(configuration);

const offerOptions = {

offerToReceiveVideo: 1,

offerToReceiveAudio: 0

};

let offer = this.pc.createOffer(offerOptions);

offer.then(async value => {

await this.pc.setLocalDescription(value);

this.connection.send(JSON.stringify(value))

});

this.connection.onmessage = async event => {

let data = JSON.parse(event.data);

if (data) {

if (data.type === ‘offer’) {

await this.pc.setRemoteDescription(data);

await this.pc.setLocalDescription(await this.pc.createAnswer());

this.connection.send({ ‘desc’: this.pc.localDescription }.toString());

} else if (data.type === ‘answer’) {

await this.pc.setRemoteDescription(data);

}

}

};

this.pc.onnegotiationneeded = async () => {

await this.pc.setLocalDescription(await this.pc.createOffer());

this.connection.send({ ‘desc’: this.pc.localDescription }.toString());

};

this.pc.onicecandidate = (event) => {

if (event.candidate !== null) {

let data = JSON.parse(JSON.stringify(event.candidate));

data[‘type’] = ‘candidate’;

this.connection.send(JSON.stringify(data));

}

};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142822.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 手机写java_手机怎么写java

    手机写java_手机怎么写java手机怎么写java通常我们写java程序都是在电脑上,很少在手机上写程序,因为手机屏幕小,写起来不方便,而且ide也没有电脑的好用。但手机相对来说比较便捷,随时随地就可以写代码,练练手,下面就介绍一下如何在手机上写java程序吧。1、下载安装软件软件名:JavaN-IDE-AndroidBuilder-JavaSECompiler2、进入软件刚开始进入时,会提示你创建工程、包名、主方法类,…

  • mysql基本命令

    mysql基本命令这里把自己学的mysql数据库的知识总结一下,当是给自己复习一遍,也是方便以后查询安装和配置mysql就不说了,可以借鉴这位博友的安装过程https://www.cnblogs.com/by330

  • PyCharm+SVN「建议收藏」

    PyCharm+SVN「建议收藏」首先电脑安装svn,并且确svn/bin下面有svn.exe文件没有bin/svn.exe解决方法:重新打开TortoiseSVN安装文件-Modify-Next后在commandlineclienttools选项修改为Willbeinstalledonlocalharddrive,等待安装完成,SVN目录会出现svn.exe文件如果以上解决…

  • vmware16虚拟机安装教程win10_虚拟机安装ghostwin7

    vmware16虚拟机安装教程win10_虚拟机安装ghostwin7相对于vm15而言,vm16虚拟机它的基础上进行了全方面的改善和优化,如能够从vmx中删除图形渲染并将其作为单独的沙箱进程运行,可以增强虚拟机的安全性,还支持在WorkstationPro顶部运行的KINDkubernetes集群,与虚拟机虚拟XHCI控制器USB3.1,以及支持10Gbps等等,最值得一提的是支持暗模式,主要优势在于弱光环境下具有更高的可读性,且降低了设备屏幕的亮度,改善…

  • C#递归题目代码建议收藏

    一列数的规则如下:1、1、2、3、5、8、13、21、34……求第30位数是多少,用递归算法实现。代码:1publicclassMainClass23{45public

    2021年12月21日
  • DLL注入explorer.exe进程[通俗易懂]

    DLL注入explorer.exe进程[通俗易懂]**DLL注入explorer.exe进程**  最近一直在学习dll注入远程进程的相关知识,于是有了这篇文章。通过注入的方式会运行程序,在资源管理器中是看不到,相关的进程的,这为程序的隐藏提供了极大的便利。一、新建dll动态链接库,然后在dllmain.cpp文件中的“caseDLL_PROCESS_ATTACH:”下输入当你dll被进程加载时要执行的代码。这里我们用“Messag…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号