Я пишу tcp-сервер для пошаговой онлайн-игры. Я уже написал прототип с использованием php сокетов, но хотел бы перейти на C ++. Я просматривал популярные сетевые библиотеки (ASIO, ACE, POCO, LibEvent), но в настоящее время неясно, какая из них лучше всего подойдет моим потребностям:
1) Соединения постоянны (порядка минут), и сервер должен иметь возможность обрабатывать более 100 одновременных подключений.
2) Соединения должны поддерживать информацию о состоянии (данные для входа пользователя). [мой php-прототип в настоящее время требует, чтобы каждый клиентский запрос содержал информацию для входа в систему]
3) По выбору и предпочтительно многопоточный, но единый процесс. Предпочитают не иметь 1 поток на соединение, а фиксированное количество потоков, работающих на всех открытых соединениях.
Я склоняюсь к платформам POCO TCPServer или Reactor, но не совсем уверен, соответствуют ли они моим требованиям. Я думаю, что Reactor является однопоточным, а TCPServer обеспечивает потоковое соединение 1: 1. Я прав?
В любом случае, я не совсем уверен, как выполнить самую важную задачу - связать информацию для входа в конкретное соединение с соединениями, которые приходят и уходят случайным образом.