cdfmlr / muvtuber

Makes your AI vtuber
445 stars 75 forks source link

muvtuberdriver: reconnect to blivechat if lost ws. #17

Closed cdfmlr closed 1 year ago

cdfmlr commented 1 year ago

Bug

观察到 muvtuberdriver 与 blivechat 的 WebSocket 链接偶尔会断开(大概开几个小时就会遇到,并且比较随机):

2023/03/12 19:09:25 [PrioritizedChatbot] Chat(B站V8大会员): 红红火火恍恍惚惚 => (ChatGPTChatbot): 这是一句有趣的诗句呢!它似乎表达了一种热闹而又恍惚的感觉,让人感觉既兴奋又有些迷糊。
2023/03/12 19:09:29 PriorityReduceFilter outputMaxPriorityOnes [Priority -> Highest]: &{Author:ChatGPTChatbot Content:这是一句有趣的诗句呢!它似乎表达了一种热闹而又恍惚的感觉,让人感觉既兴奋又有些迷糊。 Priority:2}
{ChatGPTChatbot 这是一句有趣的诗句呢!它似乎表达了一种热闹而又恍惚的感觉,让人感觉既兴奋又有些迷糊。 2}
2023/03/12 19:09:29 SendMessage: {"motion":"pinch_out"}
[GIN] 2023/03/12 - 19:09:29 | 200 |   52.153709ms |       127.0.0.1 | POST     "/driver"
2023/03/12 19:09:29 fwd msg: {"motion":"pinch_out"} -> http://localhost:9000 (chan 0x14000494360).
2023-03-12 19:09:33 WARNING [api.chat]: client=127.0.0.1 timed out
2023-03-12 19:09:38 INFO [api.chat]: client=127.0.0.1 disconnected, room=26949229
2023-03-12 19:09:38 INFO [services.chat]: room=26949229 removed client 127.0.0.1, 1 clients
2023-03-12 19:10:25 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=19525734
2023-03-12 19:13:01 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=19525734
2023-03-12 19:42:35 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=11144280
2023-03-12 19:43:51 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=11144280
2023-03-12 19:54:34 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=346314896
2023-03-12 20:28:07 WARNING [blivedm]: room=26949229 unknown cmd=GUARD_HONOR_THOUSAND, command={'cmd': 'GUARD_HONOR_THOUSAND', 'data': {'add': [], 'del': [2051617240, 1501380958, 1484169431, 1398337493, 1084222017, 672353429, 672346917, 672342685, 672328094, 480680646, 401315430, 387636363, 226102317, 194484313, 8881297, 8739477, 1521415, 745493, 114866, 67141]}}

然后就完全卡住了啥输出都没了(主要就是 muvtuberdriver 死了),必须要重启一系列服务:blivechat, live2ddriver, muvtuberdriver, 以及 chatgpt_chatbot (https://github.com/cdfmlr/chatgpt_chatbot/issues/3 解决后就不用了)。

Solution

muvtuberdriver 继续改池化的、无状态的连接(继续做 https://github.com/cdfmlr/muvtuberdriver/issues/1 ):惰性建立与 blivechat 的连接,错误后重建。