fix: stoppe l'event loop asyncio sur disconnected/connection_failed pour débloquer la reconnexion automatique

This commit is contained in:
2026-03-12 14:21:58 +00:00
parent 0b5ed2fd1f
commit 0dd871950f
+6
View File
@@ -212,6 +212,8 @@ class _SlixClient(ClientXMPP):
self.add_event_handler("session_start", self._on_session_start) self.add_event_handler("session_start", self._on_session_start)
self.add_event_handler("message", self._on_message) self.add_event_handler("message", self._on_message)
self.add_event_handler("groupchat_message", self._on_muc_message) self.add_event_handler("groupchat_message", self._on_muc_message)
self.add_event_handler("disconnected", self._on_disconnected)
self.add_event_handler("connection_failed", self._on_disconnected)
def _setup_omemo(self): def _setup_omemo(self):
try: try:
@@ -239,6 +241,10 @@ class _SlixClient(ClientXMPP):
if self._on_connected_cb: if self._on_connected_cb:
self._on_connected_cb() self._on_connected_cb()
def _on_disconnected(self, event):
if hasattr(self, 'loop') and self.loop and self.loop.is_running():
self.loop.call_soon_threadsafe(self.loop.stop)
def _on_message(self, msg): def _on_message(self, msg):
if msg["type"] in ("chat", "normal") and msg["body"]: if msg["type"] in ("chat", "normal") and msg["body"]:
body = msg["body"].strip() body = msg["body"].strip()