У меня есть сервер, на котором мне нужно как можно дольше поддерживать связь с клиентом.Мне нужно разрешить нескольким клиентам подключаться к этому серверу.Код:
class LoginServer(BaseServer):
def __init__(self, host, port):
super().__init__(host, port)
async def handle_connection(self, reader: StreamReader, writer: StreamWriter):
peername = writer.get_extra_info('peername')
Logger.info('[Login Server]: Accepted connection from {}'.format(peername))
auth = AuthManager(reader, writer)
while True:
try:
await auth.process()
except TimeoutError:
continue
finally:
await asyncio.sleep(1)
Logger.warning('[Login Server]: closing...')
writer.close()
@staticmethod
def create():
Logger.info('[Login Server]: init')
return LoginServer(Connection.LOGIN_SERVER_HOST.value, Connection.LOGIN_SERVER_PORT.value)
Проблема: в настоящее время только один клиент может подключиться к этому серверу.Кажется, сокет не закрывается должным образом.И из-за этого даже предыдущий клиент не может восстановить соединение.Я думаю, это потому, что существует бесконечный цикл.Как решить эту проблему?