コード例 #1
0
ファイル: Login.cs プロジェクト: immovablewisdom/GalaxyCore
    private void OnGalaxyConnect(byte[] message)
    {
        MessageFirst messageFirst = MessageFirst.Deserialize <MessageFirst>(message); // распаковываем первое ответное сообщение

        StaticLinks.clientData.myId = messageFirst.id;
        gameObject.SetActive(false);
    }
コード例 #2
0
        /// <summary>
        /// Сюда нам придет запрос на авторизацию
        /// </summary>
        /// <param name="approvalConnection">Временное не авторизированное соеденение</param>
        /// <param name="data">Массив байт, данные присланные вместе с запросом авторизации</param>
        private void OnGalaxyConnect(ApprovalConnection approvalConnection, byte[] data)
        {
            Console.WriteLine("Авторизация");

            MessageAuth message = MessageAuth.Deserialize <MessageAuth>(data); //преобразовывем массив байт в читабельное сообщение

            //тут нам следовало бы провести какую либо проверку правильности логина и пароля
            //Но сейчас мы не станем этого делать, и просто разрешить соеденение всем в чьих логинах содержится test
            if (message.login.Contains("test"))
            {
                MessageFirst response = new MessageFirst();                     //Создадим пакет который мы отправим клиенту вместе с разрешением коннекта
                response.id = DataBaseEmitator.GetNewUserID();                  // Получаем ид
                ClientConnection connection;                                    // Раз мы решили авторизировать клиента, то следует создать уже постоянное соеденение
                connection = approvalConnection.Approve(response, response.id); // возвращяем данные вместе с разрешением, так же мы получим уже рабочий экземпляр авторизированного соеденения
                Client client = new Client(connection, response.id);
                Server.clientManager.AddClient(client);
            }
            else
            {
                //Ну а раз test в логине не нашлось, то соеденение не разрешаем
                //Тут нам нужно отправить два оргумента
                // первый это код ошибки, вы можете указать его любым, от вернется клиенту для дайнейшей обработки
                // второй это читабельное сообщение об ошибки, впрочим это не обязательно
                approvalConnection.Deny(1, "Нам не нравится ваш логин");
            }
        }