Example #1
0
        //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public static void Login(ByteBuffer buffer, RequestViewCallback requestViewCallback)
        {
            RequestTypes requestType = (RequestTypes)buffer.GetByte();

            if ((requestType != RequestTypes.AuthByLogin) && (requestType != RequestTypes.AuthByToken))
            {
                if (requestType == RequestTypes.Error)
                {
                    Client.Log(buffer.GetLongString());
                }
                return;
            }

            connectState = ConnectStates.AuthPassed;

            ushort serverVersion = buffer.GetUShort();

            serverName = buffer.GetShortString();
            userName   = buffer.GetShortString();

            if (requestType == RequestTypes.AuthByLogin)
            {
                userToken = buffer.GetShortString();
                Client.Log("Get token: " + userToken);
            }

            if (Settings.serverVersion != serverVersion)
            {
                Client.Log("Версии клиента и сервера различаются " + serverVersion + " - " + Settings.serverVersion + ". Обновите клиент", LogTypes.Error);
            }

            Client.Log("Auth success. Server version: " + serverVersion);
        }
Example #2
0
 public Request(ushort requestID, RequestParseCallback requestParseCallback, RequestViewCallback requestViewCallback)
 {
     this.requestID            = requestID;
     this.requestParseCallback = requestParseCallback;
     this.requestViewCallback  = requestViewCallback;
 }
Example #3
0
        //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public static void SendRequestToServer(RequestParseCallback requestParseCallback, RequestViewCallback requestViewCallback)
        {
            ushort requestID = lastRequestID++;

            requestsList.Add(new Request(requestID, requestParseCallback, requestViewCallback));

            sendPacketBuffer.Add((ushort)requestID);
            sendPacketBuffer.Add((uint)time.ElapsedMilliseconds);

            SendBufferToServer();
        }
Example #4
0
        //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public static void SendRegularRequest(RequestTypes requestType, ByteBuffer requestBuffer, RequestParseCallback requestParseCallback, RequestViewCallback requestViewCallback)
        {
            if (requestType == RequestTypes.ReconnectToServer)
            {
                Init();
                requestViewCallback?.Invoke(RequestStates.Completed);
                return;
            }

            if ((DateTime.Now - lastPingTime).TotalMilliseconds > Settings.pingValueLifeTime * 3)
            {
                Init();
            }

            if ((connectState != ConnectStates.AuthPassed) && (userToken == null) && (login == null))
            {
                return;
            }

            sendPacketBuffer.Reset((int)HeaderOffsets.SecondEnd);

            sendPacketBuffer.Add((byte)ClientPacketTypes.Request);
            sendPacketBuffer.Add((byte)requestType);

            if (requestBuffer != null)
            {
                sendPacketBuffer.AddBytes(requestBuffer, 0);
            }

            SendRequestToServer(requestParseCallback, requestViewCallback);

            if (WaitForPacket(ClientPacketTypes.RequestAnswer, waitPacketTimeout) == false)
            {
                Console.WriteLine("socket.Connected: " + socket.Connected);
                socket.Disconnect(false);
                ConnectToServer();
            }

            Update();
        }