From 7b3e8af33f635cfc493bdc035cd6ccf37db74ede Mon Sep 17 00:00:00 2001 From: octo-patch Date: Thu, 9 Apr 2026 11:00:46 +0800 Subject: [PATCH] fix: remove duplicate ACK in handle_message to prevent message re-delivery The main() loop already sends an ACK for every incoming WebSocket message that contains a 'mid' header. handle_message() was sending a second identical ACK, causing the server to potentially interpret the duplicate as a delivery failure and re-send the same message with a new timestamp. This redundant ACK is the likely root cause of the duplicate message processing issue (related to #66) where the bot generates and sends multiple replies for a single buyer message. Fixes #66 --- main.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/main.py b/main.py index 73ad824a..b120ab68 100644 --- a/main.py +++ b/main.py @@ -357,25 +357,6 @@ async def handle_message(self, message_data, websocket): """处理所有类型的消息""" try: - try: - message = message_data - ack = { - "code": 200, - "headers": { - "mid": message["headers"]["mid"] if "mid" in message["headers"] else generate_mid(), - "sid": message["headers"]["sid"] if "sid" in message["headers"] else '', - } - } - if 'app-key' in message["headers"]: - ack["headers"]["app-key"] = message["headers"]["app-key"] - if 'ua' in message["headers"]: - ack["headers"]["ua"] = message["headers"]["ua"] - if 'dt' in message["headers"]: - ack["headers"]["dt"] = message["headers"]["dt"] - await websocket.send(json.dumps(ack)) - except Exception as e: - pass - # 如果不是同步包消息,直接返回 if not self.is_sync_package(message_data): return