GalaxyServer:Connect

Материал из GreatGalaxy
Перейти к: навигация, поиск

Подключение

Состав проекта:

  • Assets\GalaxyNetwork\Assemblies\GalaxyLib.dll // Основная библиотека клиента
  • Assets\GalaxyNetwork\Assemblies\GalaxyLib.xml // Справочная информация для библиотеки
  • Assets\GalaxyNetwork\Assemblies\GalaxyCommon.dll // Дополнительная библиотека клиента
  • Assets\GalaxyNetwork\Assemblies\GalaxyCommon.xml // Справочная информация
  • Assets\GalaxyNetwork\Core\GalaxyCommon\Core\GalaxyEvents.cs // Класс приема операций

Начальные настройки

Подключаем dll:

 using GalaxyLib;

Добавляем на сцену GalaxyEvents.cs (Меню -> GalaxyNetwork -> Основные инструменты -> Ядро) Он будет “неубиваемый” оставаться даже при загрузке новой сцены. В инспекторе, в созданный компонент вводим ваш app_key.

Авторизация

Сервера имеют встроенную аутентификацию, поэтому клиенты могут отправлять запросы и подключаться, только если у них есть ключ сервера, который разработчик получает в личном кабинете на сайте и встраивает его в приложение. Ключ необходимо вставить в соответствующее поле компонента GalaxyEvents.

Добавляем на сцену модуль авторизации mod_login, он же умеет и регистрировать пользователя. При регистрации, пароль хэшируется до того, как он будет сохранен на сервере базы данных и не может быть прочитан или «восстановлен» администраторами. Это защищает конфиденциальность пользователя.

Адрес электронной почты должен быть действительным, как определено RFC-5322, в альфа-тесте проверка эл.почты отключена.

Производим подключение:

GalaxyNetwork.Connection.Connect((string)login, (string)password, ServerLocation serverLocation);

Существующий сервер можно найти в списке ServersList.Region.RU.ServerName;

Перед запуском проекта, и проверке подключения, необходимо настроить события, которыми Сервер тебя будет уведомлять о результате выполнения операций. В данном случае об успешном подключении.. Настройку событий смотри ниже.

После подключения можно:

Текущий статус подключения:

(bool)connection_status = GalaxyNetwork.Connection.connected;

Узнать параметры учетной записи:

// твой уникальный идентификатор
(uint)my_client_id = GalaxyNetwork.Connection.clientId;

// твой логин
(string)client_name = GalaxyNetwork.Connection.clientName;

После входа в комнату:

Узнать максимальное количество клиентов (игроков) в ней:

(ushort)maxPlayersCount = GalaxyNetwork.Room.maxPlayersCount;


(устаревшее)Доступ к списку онлайн игроков:

List<GGPlayer>= GalaxyNetwork.Room.Players;

(устаревшее)Доступ к твоему игроку:

GGPlayer = GalaxyNetwork.MyPlayer;


[LowLevelAPI]

Доступ к списку сетевых объектов игрока:

netObjectsList = GalaxyEvents.netObjects;


[LowLevelAPI] (устаревшее) List<GGObject>= GalaxyNetwork.Players[player].GalaxyObjects<>;


Информация об игроке:

//Vector3 = GalaxyNetwork.Player.position

//Quaternion = GalaxyNetwork.Player.rotation

UInt32 = GalaxyNetwork.Player.clientId;

bool = GalaxyNetwork.Player.isMy;

Object[] = GalaxyNetwork.Player.data;


[Event] События подключения

Автоматически вызываемые методы Сервером.

События сами по себе не будут работать. На них нужно подписаться и если они не нужны, отписаться от них. Подробности: Смотри Главу 2.

Вызывается при подключении к серверу

void OnGalaxyConnect(ErrorCode errorCode)
{
    if (errorCode != ErrorCode.none) Debug.Log("Ошибка: " + ErrorMessages.RU[errorCode]);
}

В переменной errorCode будет содержаться ошибка выполнения операции или если ее нет, то errorCode=ErrorCode.none

Вызывается при отключении от сервера

void OnGalaxyDisconnect(ErrorCode errorCode)

Внимание! Единственное событие, от которого нельзя отписываться, иначе оно может не успеть отработать



Назад