StreamMusic icon indicating copy to clipboard operation
StreamMusic copied to clipboard

在切换网络形式后,无法自动切换主备线路

Open Seameee opened this issue 1 year ago • 11 comments

Describe the bug (BUG 描述,多条问题请分别建立 issue) A clear and concise description of what the bug is. 我现在最新版本了,还是没法自动切换线路,明明主线路是内网地址,备线是外网线路,从Wi-Fi切到流量依然不会切换,无论是app内切换还是切换后退出app重新链接都无效,直接手动点击线路切换是正常的

To Reproduce (复现步骤,复现问题是处理问题的必要条件) Steps to reproduce the behavior:

  1. 使用可以连接内网线路的wifi打开app,此时使用线路为主线路(内网)

  2. 关闭wifi,再播放音乐即使已经无法获取,仍然不会切换备用线路(公网),此时查看网络连接,app依然在尝试访问内网地址,并且在回报超时后尝试几次内网连接,而并没有尝试访问备用线路 IMG_2266 IMG_2267

  3. 退出音流app,重新打开app,此时网络状态为可访问公网的流量状态,app依然在尝试访问主线,并没有去请求备线 IMG_2268

  4. 手动切换为备用线路,可以看到网络访问是正常的,歌曲也可以正常播放 IMG_2269

Expected behavior (期望行为) A clear and concise description of what you expected to happen. 主备线能够在访问超时后自动互相切换,如果实在难以实现,改成wifi下使用某条线路,流量使用某条线路也可以

Screenshots (截图) If applicable, add screenshots to help explain your problem.

Platform and Device Info (操作系统及设备信息)

  • OS: iOS 17.6
  • Version: 1.3.1

Music Server Type (音乐服务器类型) Navidrome 0.53.1 (1ba390a7)

  • [ ] Direct Mode(直连模式)
  • [x] Library Mode(媒体库模式)

Additional context (额外信息) Add any other context about the problem here. 与这个issue #277 表现相同,我看到在1.2.9以后的版本据说已经修复,但实测我这里还是会出现这样的情况

Seameee avatar Sep 24 '24 10:09 Seameee

我的还好,就是主线路切备用慢,但是备用切主线路倒是秒切换

shanhai2333 avatar Sep 25 '24 02:09 shanhai2333

我的还好,就是主线路切备用慢,但是备用切主线路倒是秒切换

我这里就从来没触发成功过:(

Seameee avatar Sep 25 '24 08:09 Seameee

音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路

gitbobobo avatar Sep 26 '24 10:09 gitbobobo

音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路

问题是,已经连接超时了,仍然不会切换备线 IMG_2326 日志如下

Seameee avatar Sep 27 '24 23:09 Seameee

又试了一下,我这里可以自动切换,主线路切备用需要等待5秒的超时时间,备用切主线路基本上能连接到主线路就切换成功了。

你这里日志的报错不是超时错误,可能是代理软件直接断开连接了?试试关掉代理能否正常切换

gitbobobo avatar Sep 28 '24 01:09 gitbobobo

又试了一下,我这里可以自动切换,主线路切备用需要等待5秒的超时时间,备用切主线路基本上能连接到主线路就切换成功了。

你这里日志的报错不是超时错误,可能是代理软件直接断开连接了?试试关掉代理能否正常切换

关掉qx尝试了一下确实切换成功了,很奇怪不知道是qx的问题还是什么

Seameee avatar Sep 28 '24 06:09 Seameee

猜测是代理软件有自己的超时时间,小于音流目前设置的5s,导致连接提前断开了

gitbobobo avatar Sep 28 '24 09:09 gitbobobo

猜测是代理软件有自己的超时时间,小于音流目前设置的5s,导致连接提前断开了

我尝试调整了代理的检测超时时间到8s,显然并没有作用 很抱歉我并不是开发者,不是很能理解目前的主备线路切换逻辑。按我所在行业的逻辑来看,为什么不能考虑在网络发生变化或其他情况下,主备线都进行检测,如果主备线都通就优先主线,主备线仅有其中一方可用就切换到可用线路,都不可用就提示错误,如果有更多的线路就把其他线路视为前两个线路的备用,以此类推。 现在因为代理软件提前把无法访问的192.168.0.0类似的本地地址拦下了,音流app也能检测到该地址无法访问,不能因为超时时长在5s以内回报不能访问,就一直尝试,直到超时次数到达上限也没有切换备线尝试。 如果是我这样理解没有问题的话,这种逻辑显然是不合理的。因为我也并不是开发者所以可能很不专业,您可以参考着来

Seameee avatar Sep 28 '24 12:09 Seameee

音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路

这就是音流的处理逻辑,且网络环境发生变化就会立即触发检测。你感受到的延迟只是在等待主线路的网络连接超时。

主备线路都检测会导致一个问题,在主备线路都能连接的情况下,音流会选择最先返回成功结果的线路作为当前线路,那么当前线路可能会由于线路的网络延迟而频繁切换,这样一是可能导致无法预期的问题出现,二是失去了优先使用主线路的功能。

不论如何,我会尝试在开启代理软件(其他软件,没有你这个软件)的情况尝试复现此问题,若能成功复现,想必是可以解决的。

gitbobobo avatar Sep 28 '24 15:09 gitbobobo

音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路

这就是音流的处理逻辑,且网络环境发生变化就会立即触发检测。你感受到的延迟只是在等待主线路的网络连接超时。

主备线路都检测会导致一个问题,在主备线路都能连接的情况下,音流会选择最先返回成功结果的线路作为当前线路,那么当前线路可能会由于线路的网络延迟而频繁切换,这样一是可能导致无法预期的问题出现,二是失去了优先使用主线路的功能。

不论如何,我会尝试在开启代理软件(其他软件,没有你这个软件)的情况尝试复现此问题,若能成功复现,想必是可以解决的。

从qx里的网络日志里看,应该是连尝试备线都没有尝试,一直在访问那个只能内网访问的主线,期待能改善吧 我也尝试一下其他代理软件,看是qx的原因,还是整个iOS代理都会遇到这种情况

Seameee avatar Sep 28 '24 16:09 Seameee

🏷️ Priority: P0 - 全局歌单搜索失效,常用功能无法使用,影响用户查找音乐的效率。

gitbobobo avatar Dec 04 '25 16:12 gitbobobo