feat(bridge): QQ adapter reconnect and send rate limiting
- supervisor loop keeps the OBv11 WebSocket alive, reconnecting with exponential backoff (1s→30s) when the connection drops; Start no longer fails permanently when NapCat is temporarily unreachable - Send enforces MinGap between messages (from SendOptions or the adapter's send_interval_ms setting, now wired from the admin panel) - parseMessage no longer panics on events missing sender/time fields - tests: reconnect after drop, rate limit enforcement, malformed events, send while disconnected
This commit is contained in:
1 parent
8603839711
commit
9f30cdd086
3 files changed
+237
-33
No files matched your search
@@ -462,9 +462,12 @@ func loadAdaptersFromConfig(router *bridge.Router, cfg *bridge.BridgeConfig, orc
|
||||
if !ac.Enabled { continue }
|
||||
switch ac.Type {
|
||||
case "qq-obv11":
|
||||
minGapMs := 0
|
||||
fmt.Sscanf(ac.Settings["send_interval_ms"], "%d", &minGapMs)
|
||||
router.Register(bridgeqq.New(bridgeqq.Config{
|
||||
Name: ac.Name, WSURL: ac.Settings["ws_url"],
|
||||
AccessToken: ac.Settings["access_token"], BotQQ: ac.Settings["bot_qq"],
|
||||
MinGapMs: minGapMs,
|
||||
}))
|
||||
case "telegram":
|
||||
router.Register(bridgetg.New(bridgetg.Config{Name: ac.Name, Token: ac.Settings["token"]}))
|
||||
|
||||
Reference in new issue
Block a user