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