PlanetServer используется для разработки многопользовательских виртуальных сред, предоставляя средний уровень между клиентом и сервером. Он использует гнезда, чтобы любые сообщения, отправленные от одного клиента, могут быть переданы всем другим клиентам. На данный момент PlanetServer поддерживает платформы Android/IOS/Windows/Max/Linux. Он использует пользовательский протокол на TCP, и мы скоро будем поддерживать UDP. ## каталоги
У PlanetServer есть несколько основных каталогов, о которых вы должны знать
LIB - содержит все зависимости, необходимые серверу '
Расширение - содержит JAR для расширения игры и любые другие пользовательские зависимости, необходимые для вашего расширения
Conf - содержит файл конфигурации для сервера, а также файл конфигурации для log4j (журнал)
## Конфигурация
PlanetServer содержит файл config.properties в папке Conf. Этот файл может быть отредактирован для настройки конкретных настроек для вашего сервера.
Настройка Server.tcp.port используется для настройки порта, который прослушивает ваш сервер
Server.Threads.executor Настройка используется для настройки количества потоков в ThreadPool. Вы захотите увеличить эту сумму в зависимости от количества активности по причинам производительности.
Существует также файл log4j.properties , в котором вы можете настроить журнал для вашего сервера. Обратитесь к документации Log4J для получения более подробной информации об этом.
Внутри папки расширения есть файл World.properties . Этот файл содержит свойства, специфичные для вашей игры и доступны через код игры. Единственным необходимым свойством здесь является расширение. Приведенный пример настраивается так, чтобы для вашего собственного расширения просто измените имя класса.
## расширения При создании вашего приложения вы создаете расширение для Planetserver. Расширение - это просто файл JAR, который помещается внутри папки расширения со всеми остальными необходимыми файлами JAR для вашего приложения. Вы должны создать основной класс для расширения для точки входа. Основной класс должен расширяться от Psextension и переопределять методы init и unders. Например
public class WorldExtension extends PSExtension {
@Override
public void init()
{
}
@Override
public void destroy()
{
super.destroy();
}
}
Поместите любую пользовательскую функциональность в методы init и уничтожить. Это может содержать любой пользовательский код, который вам нужен для вашего приложения.
## Запросы на расширение Для отправки пользовательских команд на сервер. Вы должны зарегистрировать пользовательский класс для обработчика запроса. Например, допустим, у вас есть игрок, и вы хотите отправить запрос, чтобы сделать что -то для игрока. Сначала добавьте обработчик запроса addRequesthandler («Player», PlayerRequest.class); Затем создайте файл PlayerRequest Java, который простирается от BasicClientRequestHandler. Вы переопределяете метод HandleclientRequest, а затем вы можете проанализировать запрос, который был отправлен.
Все команды отправляются с использованием точечной нотации. Например, все, что начинается с игрока. Будет обрабатывается обработчиком запроса, который зарегистрирован для строки «плеера». Некоторые примеры могут быть Player.Save, Player.Load, Player.Move и т. Д.… Хороший способ - иметь перечисление команд, а затем вы можете написать оператор переключателя, чтобы обрабатывать команды отдельно на файл Java. Вы можете просмотреть пример в примере файла Java.
## Планы на будущее для следующей крупной версии версии 1.1 будут поддерживать обмен сообщениями UDP. Мы считаем, что это необходимо для некоторых игр с более высокой скоростью сообщений.