This commit is contained in:
Your Name
2026-07-28 09:00:19 +08:00
parent 8ba13a8ff9
commit 153db97dc7
14 changed files with 793 additions and 75 deletions
@@ -27,6 +27,7 @@ class DouyinImWsClient:
self.on_message = on_message
self.account_id = account_id
self._running = False
self.connected = False
self._task: Optional[asyncio.Task] = None
self._loop: Optional[asyncio.AbstractEventLoop] = None
self._ws_app: Optional[WebSocketApp] = None
@@ -50,6 +51,7 @@ class DouyinImWsClient:
async def stop(self):
self._running = False
self.connected = False
with self._ws_lock:
if self._ws_app:
try:
@@ -150,6 +152,7 @@ class DouyinImWsClient:
return
def on_open(_ws):
self.connected = True
logger.info("IM WebSocket connected")
system_logger.record(
"实时接收通道已连接",
@@ -174,6 +177,7 @@ class DouyinImWsClient:
)
def on_close(_ws, code, msg):
self.connected = False
logger.info(f"IM WebSocket closed: code={code}, msg={msg}")
if self._running:
system_logger.record(
@@ -206,6 +210,7 @@ class DouyinImWsClient:
try:
ws_app.run_forever(origin="https://www.douyin.com", ping_interval=20, ping_timeout=10)
finally:
self.connected = False
with self._ws_lock:
if self._ws_app is ws_app:
self._ws_app = None