skmcj / dycast

抖音弹幕姬,只需输入房间号,即可实时获取对应直播间的弹幕信息,并可将其转发到自己的后端服务
312 stars 83 forks source link

请问刷一个礼物会推送两条礼物信息,怎么解决 #12

Closed ningbinChen closed 7 months ago

LPQingFeiDeYi commented 9 months ago

同问

LPQingFeiDeYi commented 9 months ago

有些礼物会推送两条,有些不会

skmcj commented 9 months ago

推送消息是对dy的wss进行的解析转发,如果真的有同一消息推送多次,那应该也是wss推送了两次。 要解决这种问题,只能在程序内加个消息过滤,每条消息都有个ID,自己判断过滤一下

ningbinChen commented 9 months ago

推送消息是对dy的wss进行的解析转发,如果真的有同一消息推送多次,那应该也是wss推送了两次。 要解决这种问题,只能在程序内加个消息过滤,每条消息都有个ID,自己判断过滤一下

但是他们的ID也是不同的,没有区别规律。我现在是通过时间判断(若4秒内同样的礼物出现我会过滤掉,这解决不了根本问题但是

ningbinChen commented 9 months ago

我还去把里面的获取方法每个参数都打样了,赠送一个礼物推送两条信息(这两条信息是没有区别同一标识的,所以无法过滤)。

skmcj commented 9 months ago

你是如何发现同一礼物推送两条的,有没有复现的房间号或对应的信息截图

ningbinChen commented 9 months ago

其实您可以自己跑一下代码试一下,立马就可以复现出来

skmcj commented 9 months ago

大概修复了,为礼物消息增加了一个repeatEnd属性,当其大于零时表示重复(个人猜测),可自行测试判断下是否正确

LPQingFeiDeYi commented 9 months ago

好像是可以,测试了下,repeatEnd判断,大于0的表示是重复的,大于0的过滤就行了