IP-адрес локации серверов - PullRequest
0 голосов
/ 02 октября 2019

Я делаю игру в Libgdx, где пользователь (клиент) сам будет хостом сервера, и только один другой клиент может подключиться к нему и играть с ним (аналогично, могут быть несколько независимых серверов и пара клиентов, играющихдруг с другом, как игры в мини-клипы), но как другой клиент будет определять IP хост-клиента (или серверов)? Я использую крионет. Какой-то парень предложил мне сделать пробивание NAT и все такое, но я совершенно сбит с толку. Пожалуйста, помогите

(я начинающий в сети)

1 Ответ

0 голосов
/ 02 октября 2019

Если вы хотите, чтобы ваши клиенты обнаруживали серверы только в локальной сети, вы можете выполнять вещание на серверах и прослушивание клиентов. Поскольку они находятся в одной и той же локальной сети, NAT не должен быть нужен.

В противном случае вам необходимо настроить менеджеры (серверы для управления) в Интернете. Серверы должны зарегистрироваться у менеджера, клиенты запрашивают у менеджера информацию о серверах. Поскольку менеджеры знают общедоступные IP-адреса как серверов, так и клиентов, NAT должен быть легким, если вы считаете, что ваши менеджеры STUN серверы.

Самый простой менеджер может быть просто оберткой над базой данных / Redisс таблицей метаданных имени сервера / ip сервера / сервера. Подробная информация о том, как его реализовать, зависит от вашего стека навыков. Для включения STUN есть сервер и клиент STUN с открытым исходным кодом, которые вы можете просто подобрать, например, coturn . Независимо от того, поместите ли вы сервер STUN в своего менеджера или нет, ваши менеджеры и серверы STUN должны публиковаться в Интернете (включая AWS), где они имеют свои собственные общедоступные IP-адреса.

Или вы можете разрешитьменеджеры для ретрансляции сообщений для серверов и клиентов. Но этот способ может быть слишком сложным по сравнению с предыдущим. Я бы не рекомендовал.

...