champkeh/blive-ws

弹幕推送有些问题

Opened this issue · 7 comments

wss://blive.deno.dev不推送弹幕了,https://blive.deno.dev/ 网站上的控制台输出是正常的

懂了,获得的服务器链接url,有的可以正常推送,有的不能!感觉可以优化一下,把正常的记录一下,下次连接的时候可以优先使用正常的url

你指的是wss://tx-bj-live-comet-12.chat.bilibili.com:443/sub这种地址吗?
我之前的经验是大部分这种带地区的都可能会出现连不上的问题,最后那个broadcastlv.chat.bilibili.com一般都可以连接。
不过这一块的确可以优化一下,现在每次都是直接用官方返回的那3个,其实可以维护一个可用地址列表,弄一个定时器动态更新一下

是的,就是这种华为或者腾讯或者阿里开头的链接。我的做法是在本地存了一个数组,收到弹幕后加了一个累计次数,下次连接时把我存的地址还有获取到的三个地址,按照累计次数进行排序,这样最大概率拿到最稳定的地址。如果存储的地址发生连接失败的情况,失败一次加入备选列表,失败两次直接删除
QQ截图20230902200918

今天我改完做测试的时候,发现同一个链接,之前推送弹幕正常的链接,一刷新就不推送了。再刷新几次,发送弹幕又正常推送了,也挺薛定谔的。优化思路就是,连接成功后,需要自动发几条测试弹幕,测试一下成功接收情况

我发现带地区的这些地址好像都是临时地址,有时候刚获取的都连不上,有的连上了也拿不到数据,都没有broadcastlv.chat.bilibili.com稳定

今天测试了下,在获取地址列表(https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo)的时候,带上用户的SESSDATAbuvid3这两个cookie,然后在发送认证包的时候传相同的buvid,这样能连接成功的概率就大得多。

ok!