修复: emit 未 await aiohttp 协程, 走子/匹配帧全部丢失
This commit is contained in:
1 parent
adf3abb5fc
commit
ddcf8c4bec
1 file changed
+6
-6
+6
-6
@@ -55,11 +55,11 @@ class OnlineBot:
|
|||||||
self._send_lock = asyncio.Lock()
|
self._send_lock = asyncio.Lock()
|
||||||
|
|
||||||
# ---------- 基础 ----------
|
# ---------- 基础 ----------
|
||||||
def emit(self, event, data, ack=False):
|
async def emit(self, event, data, ack=False):
|
||||||
self._ack += 1
|
self._ack += 1
|
||||||
n = self._ack if ack else ''
|
n = self._ack if ack else ''
|
||||||
payload = json.dumps([event, data], ensure_ascii=False)
|
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):
|
def my_name(self):
|
||||||
try:
|
try:
|
||||||
@@ -113,7 +113,7 @@ class OnlineBot:
|
|||||||
return
|
return
|
||||||
if raw.startswith('40'):
|
if raw.startswith('40'):
|
||||||
log.info('[ws] joined /xiangqi')
|
log.info('[ws] joined /xiangqi')
|
||||||
self.emit('lobby.join', {'room': 'lobby'})
|
await self.emit('lobby.join', {'room': 'lobby'})
|
||||||
if not self.args.game:
|
if not self.args.game:
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
asyncio.create_task(self.quick_challenge())
|
asyncio.create_task(self.quick_challenge())
|
||||||
@@ -133,9 +133,9 @@ class OnlineBot:
|
|||||||
if event == 'lobby.my.game.new':
|
if event == 'lobby.my.game.new':
|
||||||
self.game_id = data.get('game_id')
|
self.game_id = data.get('game_id')
|
||||||
log.info('[game] matched %s', self.game_id)
|
log.info('[game] matched %s', self.game_id)
|
||||||
self.emit('lobby.left', {})
|
await self.emit('lobby.left', {})
|
||||||
await asyncio.sleep(0.3)
|
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':
|
elif event == 'game.get.success':
|
||||||
d = data.get('data', {})
|
d = data.get('data', {})
|
||||||
me = self.my_name()
|
me = self.my_name()
|
||||||
@@ -227,7 +227,7 @@ class OnlineBot:
|
|||||||
self.last_move_at = asyncio.get_event_loop().time()
|
self.last_move_at = asyncio.get_event_loop().time()
|
||||||
think_ms = int((asyncio.get_event_loop().time() - t0) * 1000)
|
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)
|
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,
|
await self.emit('g_v2.move', {'game_id': self.game_id, 'move': site_mv,
|
||||||
'thinking_time': think_ms})
|
'thinking_time': think_ms})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error('[move] %s: %s', type(e).__name__, e)
|
log.error('[move] %s: %s', type(e).__name__, e)
|
||||||
|
|||||||
Reference in new issue
Block a user