网络更改后WebRTC媒体聊天中的对等连接无效

网络更改后WebRTC媒体聊天中的对等连接无效,webrtc,janus,janus-gateway,Webrtc,Janus,Janus Gateway,我正在建立基于Janus媒体服务器的网络聊天。当我在移动浏览器中测试并更改网络(例如禁用/启用Wi-Fi)时,会出现此问题 在我这样做之后,有什么东西阻止了建立有效的对等连接-当将媒体流连接到视频组件时,没有视频,比特率为0。另外,如果我从这个移动用户发布视频,另一端的订户可以订阅我的流,但也会得到空视频/音频 我已经尝试过触发ICE重新谈判,但没有效果 让我头疼的是,通常人们在没有页面刷新的情况下“顺利”修复对等连接。在我的情况下,页面刷新、Janus服务器重启和后端服务器重启都没有帮助。这是

我正在建立基于Janus媒体服务器的网络聊天。当我在移动浏览器中测试并更改网络(例如禁用/启用Wi-Fi)时,会出现此问题

在我这样做之后,有什么东西阻止了建立有效的对等连接-当将媒体流连接到视频组件时,没有视频,比特率为0。另外,如果我从这个移动用户发布视频,另一端的订户可以订阅我的流,但也会得到空视频/音频

我已经尝试过触发ICE重新谈判,但没有效果

让我头疼的是,通常人们在没有页面刷新的情况下“顺利”修复对等连接。在我的情况下,页面刷新、Janus服务器重启和后端服务器重启都没有帮助。这是我不责怪内部逻辑的主要原因之一。 经过一段时间后,问题得到解决(我通常在第二天测试)

如果我切换回初始连接类型并重新订阅-视频流恢复

我不希望在这里得到完整的解决方案,而是希望得到关于可能导致特定症状的建议。我已经花了几个星期来解决这个问题

以下是来自管理监视器的订户句柄信息:

{
"session_id": 5720008786817209,
"session_last_activity": 6209682888251,
"session_transport": "janus.transport.http",
"handle_id": 6533528277151528,
"opaque_id": "sfutest-680291",
"loop-running": true,
"created": 6209682084107,
"current_time": 6209693977397,
"plugin": "janus.plugin.videoroom",
"plugin_specific": {
    "type": "subscriber",
    "room": 681365,
    "private_id": 1730265710,
    "feed_id": 4541903455858496,
    "feed_display": "681365",
    "media": {
        "audio": true,
        "audio-offered": true,
        "video": true,
        "video-offered": true,
        "data": false,
        "data-offered": true
    },
    "simulcast": {
        "substream": -1,
        "substream-target": 2,
        "temporal-layer": -1,
        "temporal-layer-target": 2
    },
    "hangingup": 0,
    "destroyed": 0
},
"flags": {
    "got-offer": true,
    "got-answer": true,
    "negotiated": true,
    "processing-offer": false,
    "starting": true,
    "ice-restart": false,
    "ready": true,
    "stopped": false,
    "alert": false,
    "trickle": true,
    "all-trickles": true,
    "resend-trickles": false,
    "trickle-synced": false,
    "data-channels": false,
    "has-audio": true,
    "has-video": true,
    "new-datachan-sdp": false,
    "rfc4588-rtx": true,
    "cleaning": false
},
"agent-created": 6209682284915,
"ice-mode": "full",
"ice-role": "controlling",
"sdps": {
    "profile": "UDP/TLS/RTP/SAVPF",
    "local": "v=0\r\no=- 1596975263019095 1 IN IP4 185.12.12.24\r\ns=VideoRoom 681365\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS janus\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111\r\nc=IN IP4 185.12.12.24\r\na=sendonly\r\na=mid:audio\r\na=rtcp-mux\r\na=ice-ufrag:sCux\r\na=ice-pwd:NK9E7vrPjeXDO2Q0DL3hIf\r\na=ice-options:trickle\r\na=fingerprint:sha-256 39:45:8D:E3:AB:4E:6D:55:63:07:16:39:14:FF:C1:8F:8C:3A:C1:32:FF:B8:2D:B5:42:C0:99:06:DB:BE:71:43\r\na=setup:actpass\r\na=rtpmap:111 opus/48000/2\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=rtcp-fb:111 transport-cc\r\na=msid:janus janusa0\r\na=ssrc:3513017309 cname:janus\r\na=ssrc:3513017309 msid:janus janusa0\r\na=ssrc:3513017309 mslabel:janus\r\na=ssrc:3513017309 label:janusa0\r\na=candidate:1 1 udp 2015363327 185.12.12.24 58146 typ host\r\na=end-of-candidates\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97\r\nc=IN IP4 185.12.12.24\r\na=sendonly\r\na=mid:video\r\na=rtcp-mux\r\na=ice-ufrag:sCux\r\na=ice-pwd:NK9E7vrPjeXDO2Q0DL3hIf\r\na=ice-options:trickle\r\na=fingerprint:sha-256 39:45:8D:E3:AB:4E:6D:55:63:07:16:39:14:FF:C1:8F:8C:3A:C1:32:FF:B8:2D:B5:42:C0:99:06:DB:BE:71:43\r\na=setup:actpass\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:13 urn:3gpp:video-orientation\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=ssrc-group:FID 163753807 2929619259\r\na=msid:janus janusv0\r\na=ssrc:163753807 cname:janus\r\na=ssrc:163753807 msid:janus janusv0\r\na=ssrc:163753807 mslabel:janus\r\na=ssrc:163753807 label:janusv0\r\na=ssrc:2929619259 cname:janus\r\na=ssrc:2929619259 msid:janus janusv0\r\na=ssrc:2929619259 mslabel:janus\r\na=ssrc:2929619259 label:janusv0\r\na=candidate:1 1 udp 2015363327 185.12.12.24 58146 typ host\r\na=end-of-candidates\r\n",
    "remote": "v=0\r\no=- 2846574689702018810 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:iTKh\r\na=ice-pwd:YcBYvuoYtPN74wLGsmRYZPkC\r\na=ice-options:trickle\r\na=fingerprint:sha-256 44:62:26:8A:9B:2C:35:82:62:07:1C:36:1B:3D:84:B0:D7:1C:A2:9D:A3:57:D0:41:E8:D6:F9:D8:9A:77:04:FE\r\na=setup:active\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:iTKh\r\na=ice-pwd:YcBYvuoYtPN74wLGsmRYZPkC\r\na=ice-options:trickle\r\na=fingerprint:sha-256 44:62:26:8A:9B:2C:35:82:62:07:1C:36:1B:3D:84:B0:D7:1C:A2:9D:A3:57:D0:41:E8:D6:F9:D8:9A:77:04:FE\r\na=setup:active\r\na=mid:video\r\na=extmap:13 urn:3gpp:video-orientation\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:2 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\n"
},
"queued-packets": 0,
"streams": [
    {
        "id": 1,
        "ready": -1,
        "ssrc": {
            "audio": 3513017309,
            "video": 163753807,
            "video-rtx": 2929619259
        },
        "direction": {
            "audio-send": true,
            "audio-recv": false,
            "video-send": true,
            "video-recv": false
        },
        "extensions": {
            "urn:ietf:params:rtp-hdrext:sdes:mid": 2,
            "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01": 3,
            "urn:ietf:params:rtp-hdrext:ssrc-audio-level": 1,
            "urn:3gpp:video-orientation": 13
        },
        "bwe": {
            "twcc": true,
            "twcc-ext-id": 3
        },
        "nack-queue-ms": 200,
        "rtcp_stats": {
            "audio": {
                "base": 48000,
                "rtt": 0,
                "lost": 0,
                "lost-by-remote": 0,
                "jitter-local": 0,
                "jitter-remote": 0,
                "in-link-quality": 0,
                "in-media-link-quality": 0,
                "out-link-quality": 0,
                "out-media-link-quality": 0
            },
            "video": {
                "base": 90000,
                "rtt": 0,
                "lost": 0,
                "lost-by-remote": 0,
                "jitter-local": 0,
                "jitter-remote": 0,
                "in-link-quality": 0,
                "in-media-link-quality": 0,
                "out-link-quality": 0,
                "out-media-link-quality": 0
            }
        },
        "components": [
            {
                "id": 1,
                "state": "ready",
                "connected": 6209682688321,
                "local-candidates": [
                    "1 1 udp 2015363327 185.12.12.24 58146 typ host"
                ],
                "remote-candidates": [
                    "remote1 1 udp 1853759231 188.26.223.217 59505 typ prflx raddr 188.26.223.217 rport 59505\r\n",
                    "1287214573 1 udp 2122194687 192.168.1.131 59505 typ host generation 0 ufrag iTKh network-id 1 network-cost 10",
                    "4213993584 1 udp 2122262783 2a0c:5a80:190e:2b00:6d56:6bd7:468e:1b1b 53024 typ host generation 0 ufrag iTKh network-id 2 network-cost 10"
                ],
                "selected-pair": "185.12.12.24:58146 [host,udp] <-> 188.26.223.217:59505 [prflx,udp]",
                "dtls": {
                    "fingerprint": "39:45:8D:E3:AB:4E:6D:55:63:07:16:39:14:FF:C1:8F:8C:3A:C1:32:FF:B8:2D:B5:42:C0:99:06:DB:BE:71:43",
                    "remote-fingerprint": "44:62:26:8A:9B:2C:35:82:62:07:1C:36:1B:3D:84:B0:D7:1C:A2:9D:A3:57:D0:41:E8:D6:F9:D8:9A:77:04:FE",
                    "remote-fingerprint-hash": "sha-256",
                    "dtls-role": "passive",
                    "dtls-state": "connected",
                    "retransmissions": 0,
                    "valid": true,
                    "srtp-profile": "SRTP_AEAD_AES_256_GCM",
                    "ready": true,
                    "handshake-started": 6209682688345,
                    "connected": 6209682837110,
                    "sctp-association": false
                },
                "in_stats": {
                    "audio_packets": 0,
                    "audio_bytes": 0,
                    "audio_bytes_lastsec": 0,
                    "do_audio_nacks": false,
                    "video_packets": 0,
                    "video_bytes": 0,
                    "video_bytes_lastsec": 0,
                    "do_video_nacks": true,
                    "video_nacks": 0,
                    "video_retransmissions": 0,
                    "data_packets": 4,
                    "data_bytes": 1056
                },
                "out_stats": {
                    "audio_packets": 0,
                    "audio_bytes": 0,
                    "audio_bytes_lastsec": 0,
                    "audio_nacks": 0,
                    "video_packets": 0,
                    "video_bytes": 0,
                    "video_bytes_lastsec": 0,
                    "video_nacks": 0,
                    "data_packets": 2,
                    "data_bytes": 1259
                }
            }
        ]
    }
]
{
“会话id”:5720008786817209,
“会议最后一次活动”:620968288251,
“会话传输”:“janus.transport.http”,
“句柄id”:6533528277151528,
“不透明标识”:“sfutest-680291”,
“循环运行”:正确,
“已创建”:620968208107,
“当前时间”:6209693977397,
“插件”:“janus.plugin.videoroom”,
“插件特定”:{
“类型”:“订户”,
“房间”:681365,
“私人身份证”:1730265710,
“提要id”:45419034558496,
“提要显示”:“681365”,
“媒体”:{
“音频”:正确,
“提供音频”:正确,
“视频”:没错,
“提供视频”:没错,
“数据”:假,
“提供的数据”:正确
},
“同步广播”:{
“子流”:-1,
“子流目标”:2,
“时间层”:-1,
“时间层目标”:2
},
“hangingup”:0,
“已销毁”:0
},
“旗帜”:{
“得到提议”:真的,
“得到答案”:是的,
“谈判”:没错,
“处理报价”:错误,
“开始”:没错,
“冰重启”:错误,
“准备好了”:是的,
“停止”:错误,
“警报”:错误,
“涓涓细流”:没错,
“所有涓涓细流”:没错,
“重新发送涓涓细流”:false,
“涓流同步”:false,
“数据通道”:假,
“有音频”:是的,
“有视频”:没错,
“新datachan sdp”:错误,
“rfc4588 rtx”:正确,
“清洁”:错误
},
“已创建代理”:6209682284915,
“冰模式”:“满”,
“ice角色”:“控制”,
“SDP”:{
“配置文件”:“UDP/TLS/RTP/SAVPF”,
“本地”:"v=0\r\no=-1596975263019095 1 IN IP4 185.12.12.24\r\ns=VideoRoom 681365\r\nt=0\r\na=group:BUNDLE audio-video\r\na=msid语义:WMS janus\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111\r\nc=IN IP4 185.12.12.12.24\r\r\na=sendonly\r\n=mid:audio\r\na=rtcp mux\r\r\na=ice ufrag:sCux\r\na=ice\r\nk9If=2If\r\nk7If\n2If=trickle\r\n2If=trickle\r\n\r\r\n2If=256\n指纹选项:指纹:8.C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8:8 AME:janus\r\na=ssrc:3513017309 msid:janus janusa0\r\na=ssrc:3513017309 mslabel:janus\r\na=ssrc:3513017309 label:janusa0\r\na=candidate:1 udp 20153327 185.12.12.24 58146 typ host\r\na=candidate的结尾\r\nm=video 9 udp/TLS/RTP/savp/savp 96 97\r\nc=IN IP4 185.12.12.12.24\r\r\na=sendoly\r\na=mid:video\r\na=rtcp mux\r\r\r\na=ragice=ragice\r\r\n\r\n\r\n\r\n\r\r\n=3hdl\n\’:6:6:6:6:6:6:6:6:6:6:6:6:6:6:5:55:63:7:7:16:16:16:39:14:14:14:FF:7:7:7:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C:C s:mid\r\na=extmap:3小时ttp://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:13 urn:3gpp:video orientation\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=ssrc组:FID 163753807 2929619259\r\na=msid:janus janusv0\r\na=ssrc:163753807 cname:janus\r\na=ssrc:163753807 msid:janus janusv0\r\na=ssrc:163753807 mslabel:janus\r\na=ssrc:163753807 label:janusv0\r\na=ssrc:2929619259 cname:janus\r\na=ssrc:2929619259 mslabel:janus\r\na=ssrc:292929619259 label:58Janusv0\r\na=候选者:1 udp 20153327 185.12.12.24\r\n,
“远程”:4.0.0.0.1\r\n n=-\r\n=0 0\r\n=0 0\r\n 0 0 0\r\n=0 0\r\n n n=0 0 0 0\r\n n n=0 0 0 0 0 0 0 0 0 0 0 0\r\n\r\n=0 0 0 0 0 0\r\r\n=0 0 0 0 0 0 0 0 0 0\r\r\n=0 0 0 0 0 0 0 0 0 0 0 0\r\r\r\n=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\r\r\r\r\r\n=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\r\r\r\r\r\r\r\r\r\n=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1C:36:1B:8:7:9 9:8:9 9:8:8:9 9:8:8:9 9:9 9:9:9 9:9:9 9:9:9 9:9 9:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:9:9:9:9:9:7:7:7:7:7:7:7:7:7:7:7:7:4:4:4:04:4:4:4:4:4:4:4:4:来源:来源:来源:7:4:7:4:7:4:以下以下以下以下来源:7:7:4:来源:来源:来源:来源:来源:来源:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:7:9 UDP/TLS/RT2007年9月4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\r\r\r\r\r\r\r\r\r\n\r\n\r\r\r\r\r\r\n n\r\n\r\n\r\n\r\n\r\n\n\r\n\r\n n n n\n\r\r\r\r\n\n\r\n\r\r\r\n\n\n\r\r\r\r\r\r\r\r\r\r\r\r\n n\n n\n n n n n n n n n n n\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\n n urn:13 urn:3gpp:视频定向\r\n na=extm美联社:3http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12http://www.w