#client-server
#клиент-сервер
Вопрос:
Я работаю над архитектурой игрового сервера, но я думаю, что этот вопрос относится к разработке сервера в целом.
Настройка, с которой я работаю, вызывает несколько разных серверов для разных процессов, таких как:
- Сервер входа в систему
- Сервер выбора символов
- Сервер управления для координации всех мировых серверов
- Любое количество разных серверов параллельного мира
Итак, мой вопрос в том, как обрабатывается передача клиента между разными серверами?
Моя текущая идея заключается в том, что при входе на сервер входа клиенту присваивается какой-либо токен. В то же время сервер входа в систему передает этот токен, скажем, одному из мировых серверов. Затем клиенту присваивается IP-адрес соответствующего сервера, а затем он подключается к этому серверу, используя токен для аутентификации. Однако такой подход кажется мне небезопасным, и мне интересно, существует ли типичный способ обработки подобных ситуаций.
Комментарии:
1. Зачем вам нужны разные серверы? Какой механизм вы используете для взаимодействия клиент-сервер? Как вы думаете, почему токен небезопасен?
2. Я пытаюсь облегчить масштабируемость, разделяя проблемы. Связь обрабатывается через буферы протокола с использованием TCP (возможно, с SSL).
3. Что касается токена, мне кажется, что он будет подвержен атакам типа «человек посередине» даже с использованием SSL.
4. SSL и проверка сертификатов, безусловно, должны избегать MITM.