Akegarasu / blivedm-go

go 版 b站/bilibili 直播/bili直播 弹幕库 - websocket协议
MIT License
80 stars 14 forks source link

大佬,我在你的排队工具里添加了检测礼物的功能。但是会出现concurrent write to websocket connection的报错。 #12

Closed hajime-early closed 1 year ago

hajime-early commented 1 year ago

问题好像是因为同时调用了多次groutine,但是我已经上过锁了。 请问礼物和弹幕接口同时用的话有什么办法可以避免并发情况吗。

hajime-early commented 1 year ago

又测了一下,好像是因为短时间内同一个人送礼物的次数太频繁的话就会出现这个情况。然后在添加进列表的时候还会出现添加了多次同一个人。

hajime-early commented 1 year ago

目前想到了加个time.Sleep的办法,但不确定是否有效和会不会有其他问题出现。

hajime-early commented 1 year ago

又测了很久,只接受礼物信息的话没有问题。但是如果要把送礼物的用户放到列表里的时候就有概率会报错。理论上说弹幕要是有多个人同时发弹幕排队的话应该也有可能会报错(但是没测过)。礼物排队不计入免费礼物的话基本就不会有并发。目前我的解决办法就是排除掉免费礼物,并且指定某些付费礼物才能进列表。就基本不会出错。