Closed youngkzz closed 1 year ago
这和弹幕服务器无关,是你ip临时被拉黑
这和弹幕服务器无关,是你ip临时被拉黑
当返回的Hostlist中第一个host不可用时,无论是IP临时被拉黑还是其他什么原因,都应该切换另一个host尝试重连,目前来看它不是这么工作的,实际上也因为没有切换的原因导致了我这边一直连不上。
目前逻辑是 reconnect 应该重连当前服务器,connect dial 产生失败时表明服务器不可用时才会切换,it's designed 如果你连接到一个服务器,因为自身网络波动断开连接,而自动换了一个服务器不是很奇怪吗 原因就是目前无法检测到是自身网络不可达还是被服务器拉黑,所以才这么设计
目前逻辑是 reconnect 应该重连当前服务器,connect dial 产生失败时表明服务器不可用时才会切换,it's designed 如果你连接到一个服务器,因为自身网络波动断开连接,而自动换了一个服务器不是很奇怪吗
嗯,我觉得你说的有道理,但我不是很明白这块的机制,如果是网络问题reconnect后应该能恢复才对,但实际上只会重复reconnect,至少在网页端观看直播的时候不会出现这种情况,亦或是我直接页面刷新了没有发现。
在跑demo的时候重复出现level=info msg=reconnect日志,进程一直不能正常工作,排查发现当websocket.DefaultDialer.Dial所作用的弹幕服务器在调用ReadMessage失败时,会触发reconnect,而reconnect并不会更换弹幕服务器,从而导致一直在reconnect不能正常工作
解决方案:retryCount改为全局变量