Когда я запускаю свою функцию paddleLogic дважды, я получаю сообщение об ошибке "не могу вызвать recv (), пока другая сопрограмма уже ожидает следующего сообщения", хотя я использую await, чтобы убедиться, что они не пытаются получить одновременно.
Я запустил код, не вызывая функцию paddleLogic во второй раз, и все работает, как и ожидалось
leftPaddlePos = await paddleLogic(websocket,leftPaddlePos)
rightPaddlePos = await paddleLogic(opponent[websocket],rightPaddlePos)
async def paddleLogic(socket,pos):
try:
key = await asyncio.wait_for(socket.recv(),timeout=0.01)
if key == "1" and pos > 0:
pos = pos - 1
elif key == "2" and pos < 60:
pos = pos + 1
time.sleep(0.003)
except asyncio.TimeoutError:
pos = pos
return pos
Извините, если этот пост - беспорядок, это мой первый раззадать вопрос по stackoverflow.Если вам нужна дополнительная информация / код, я с радостью ее предоставлю.