/// <summary> /// Сюда нам придет запрос на авторизацию /// </summary> /// <param name="approvalConnection">Временное не авторизированное соеденение</param> /// <param name="data">Массив байт, данные присланные вместе с запросом авторизации</param> private void OnGalaxyConnect(ApprovalConnection approvalConnection, byte[] data) { MessageAuth message = MessageAuth.Deserialize <MessageAuth>(data); //преобразовывем массив байт в читабельное сообщение //тут нам следовало бы провести какую либо проверку правильности логина и пароля //Но сейчас мы не станем этого делать, и просто разрешить соеденение всем в чьих логинах содержится test if (message.login.Contains("test")) { MessageApproval response = new MessageApproval(); //Создадим пакет который мы отправим клиенту вместе с разрешением коннекта response.name = message.login; int clientID = Tools.GetNewID(); // Получаем ид ClientConnection connection; // Раз мы решили авторизировать клиента, то следует создать уже постоянное соеденение Client client = new Client(); // Создаем собственную реализацию клиента // возвращяем данные вместе с разрешением, так же мы получим уже рабочий экземпляр авторизированного соеденения // так же приклепляем собственную реализацию клиента, для того что бы в бущем, можно было её оперативно получить из коннекшена connection = approvalConnection.Approve(response, clientID, client); client.Init(connection, clientID); } else { //Ну а раз test в логине не нашлось, то соеденение не разрешаем //Тут нам нужно отправить два оргумента // первый это код ошибки, вы можете указать его любым, от вернется клиенту для дайнейшей обработки // второй это читабельное сообщение об ошибки, впрочим это не обязательно approvalConnection.Deny(1, "Нам не нравится ваш логин"); } }
private void OnGalaxyConnect(byte[] message) { MessageApproval messageApproval = MessageApproval.Deserialize <MessageApproval>(message); // распаковываем первое ответное сообщение Debug.Log("Наше имя " + messageApproval.name); gameObject.SetActive(false); }