From c64ec8804398aed77dfb91e38fe4f213abf95888 Mon Sep 17 00:00:00 2001 From: ricardo Date: Sun, 28 Sep 2025 09:28:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0websocket=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- liveMan.py | 22 +++++++++++++++------- main.py | 24 ++++++++++++++++++++---- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/liveMan.py b/liveMan.py index 94a8553..3ddad56 100644 --- a/liveMan.py +++ b/liveMan.py @@ -123,12 +123,24 @@ def __init__(self, live_id, abogus_file='a_bogus.js'): self.headers = { 'User-Agent': self.user_agent } + self._running = False def start(self): - self._connectWebSocket() + self._running = True + while self._running: + try: + self._connectWebSocket() + if self._running: + print("【i】WebSocket 连接意外断开,5秒后将重新连接...") + time.sleep(5) + except Exception as e: + print("【X】WebSocket 连接意外断开:", e) + time.sleep(5) def stop(self): - self.ws.close() + self._running = False + if self.ws: + self.ws.close() @property def ttwid(self): @@ -268,11 +280,7 @@ def _connectWebSocket(self): on_message=self._wsOnMessage, on_error=self._wsOnError, on_close=self._wsOnClose) - try: - self.ws.run_forever() - except Exception: - self.stop() - raise + self.ws.run_forever() def _sendHeartbeat(self): """ diff --git a/main.py b/main.py index e90656d..fe2bd5d 100644 --- a/main.py +++ b/main.py @@ -6,10 +6,26 @@ # @Author: bubu # @Project: douyinLiveWebFetcher +import signal from liveMan import DouyinLiveWebFetcher +room: DouyinLiveWebFetcher + + +def signal_handler(sig, frame): + print("Received signal:", sig) + if room: + room.stop() + + if __name__ == '__main__': - live_id = '510200350291' - room = DouyinLiveWebFetcher(live_id) - # room.get_room_status() # 失效 - room.start() + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + try: + live_id = '510200350291' + room = DouyinLiveWebFetcher(live_id) + # room.get_room_status() # 失效 + room.start() + except Exception as e: + print(e)