merge: integrate 246-side commits (bot reconnect fix + docs) with session work

This commit is contained in:
hmo
2026-07-20 08:28:16 +08:00
21 changed files with 3143 additions and 291 deletions
+7 -1
View File
@@ -245,6 +245,7 @@ class XmppAgent(slixmpp.ClientXMPP):
self._nick = nick
self._muc_joined = False
self._recent_sent = []
self._reconnecting = False # 防递归重连
self.add_event_handler('session_start', self.on_start)
self.add_event_handler('message', self.on_msg)
self.add_event_handler('disconnected', self.on_disconnect)
@@ -266,11 +267,16 @@ class XmppAgent(slixmpp.ClientXMPP):
def on_disconnect(self, event):
self._muc_joined = False
log.info(f"{AGENT_NAME} XMPP 断开")
# 自动重连:slixmpp 1.15.0 没有 auto_reconnect 属性,需手动
if self._reconnecting:
log.warning(f"{AGENT_NAME} 已在重连中,跳过递归重连")
return
self._reconnecting = True
try:
self.reconnect(wait=5.0, reason="断线自动重连")
except Exception as e:
log.warning(f"{AGENT_NAME} 重连失败: {e}")
finally:
self._reconnecting = False
def on_msg(self, msg):
if msg['type'] in ('chat', 'groupchat'):