Мне нужно создать сетевой сервер на С++ для торгового приложения. Сетевому серверу необходимо выполнить следующие задачи:
-
обрабатывать аутентификацию клиентов и предоставлять идентификатор сеанса для каждого сессии.
-
обрабатывать заказы, исходящие от клиентов, и информировать клиентов о их исполнение.
-
обрабатывает другой запрос данных, запрошенный клиентами, и отправляет данные обратно к ним.
Я планирую использовать сетевую библиотеку Boost.Asio и буферы протокола Google для реализации сообщений, отправляемых от клиентов на сервер. Подходы, основанные на XML-RPC или SOAP, - это строгое отсутствие-нет, поскольку задержка является большой проблемой.
У меня есть следующие вопросы для сообщества stackoverflow:
-
Это хорошая идея для реализации этих сообщений с использованием протокола буферы? Я также рассматриваю возможность отправки сообщений. библиотеки для ее реализации. Когда я смотрю на код, я нахожусь более уверенно в реализации этого с повышением сериализации и Заголовки Google protobuf выглядят слишком тяжело. Какой из этих методов будет: a) более ремонтопригодным и b) потребует меньше усилий? Я полагаю, оба этих подхода будут работать на разных платформах.
-
Есть ли какая-либо другая сетевая библиотека, на которую я должен смотреть отдельно от Boost.Asio.? Я нахожу ACE немного датированным, насколько С++-кодирование стиль.
-
В конце концов, я хочу, чтобы этот сетевой сервер работал на SSL, однако у меня нет опыта внедрения SSL. Как много усилий потребовалось бы для перехода на SSL позже. Должен ли я начинать с SSL или его можно добавить позже?
-
Кто-нибудь знает о хорошем проекте с открытым исходным кодом, который может реализовали аналогичный сетевой сервер, используя Boost.Asio, чтобы получить вдохновлен?