//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 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); }
public Request(ushort requestID, RequestParseCallback requestParseCallback, RequestViewCallback requestViewCallback) { this.requestID = requestID; this.requestParseCallback = requestParseCallback; this.requestViewCallback = requestViewCallback; }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 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(); }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 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(); }