From ddcf8c4bec3105dc92a695127381d370f45527bc Mon Sep 17 00:00:00 2001 From: AwesomeXiangQi Date: Sun, 13 Sep 2026 14:39:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20emit=20=E6=9C=AA=20await?= =?UTF-8?q?=20aiohttp=20=E5=8D=8F=E7=A8=8B,=20=E8=B5=B0=E5=AD=90/=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E5=B8=A7=E5=85=A8=E9=83=A8=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiangqi_bot/bot.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/xiangqi_bot/bot.py b/xiangqi_bot/bot.py index e58a475..42bd3d3 100644 --- a/xiangqi_bot/bot.py +++ b/xiangqi_bot/bot.py @@ -55,11 +55,11 @@ class OnlineBot: self._send_lock = asyncio.Lock() # ---------- 基础 ---------- - def emit(self, event, data, ack=False): + async def emit(self, event, data, ack=False): self._ack += 1 n = self._ack if ack else '' payload = json.dumps([event, data], ensure_ascii=False) - return self.ws.send_str(f'42{NS},{n}{payload}') + await self.ws.send_str(f'42{NS},{n}{payload}') def my_name(self): try: @@ -113,7 +113,7 @@ class OnlineBot: return if raw.startswith('40'): log.info('[ws] joined /xiangqi') - self.emit('lobby.join', {'room': 'lobby'}) + await self.emit('lobby.join', {'room': 'lobby'}) if not self.args.game: await asyncio.sleep(1) asyncio.create_task(self.quick_challenge()) @@ -133,9 +133,9 @@ class OnlineBot: if event == 'lobby.my.game.new': self.game_id = data.get('game_id') log.info('[game] matched %s', self.game_id) - self.emit('lobby.left', {}) + await self.emit('lobby.left', {}) await asyncio.sleep(0.3) - self.emit('g_v2.get', {'game_id': self.game_id}, ack=True) + await self.emit('g_v2.get', {'game_id': self.game_id}, ack=True) elif event == 'game.get.success': d = data.get('data', {}) me = self.my_name() @@ -227,8 +227,8 @@ class OnlineBot: self.last_move_at = asyncio.get_event_loop().time() think_ms = int((asyncio.get_event_loop().time() - t0) * 1000) log.info('[game] %s: %s → %s %s %dms', source, mv, site_mv, score, think_ms) - self.emit('g_v2.move', {'game_id': self.game_id, 'move': site_mv, - 'thinking_time': think_ms}) + await self.emit('g_v2.move', {'game_id': self.game_id, 'move': site_mv, + 'thinking_time': think_ms}) except Exception as e: log.error('[move] %s: %s', type(e).__name__, e) if self.engine._proc.returncode is not None: