Пример #1
0
    //아래는 Login버튼을 클릭하였을떄 호출되는 함수
    public void SendLoginRequest()
    {
        var InputID = (GameObject.Find("input_id_field")).GetComponent <InputField>().text;
        // var InputPW = (GameObject.Find("input_pw_field")).GetComponent<InputField>().text;
        var InputIPAddr = (GameObject.Find("input_ip_addr_field")).GetComponent <InputField>().text;

        GameNetworkServer.Instance.ipAddr = InputIPAddr;
        var request = new LoginReqPacket();

        request.SetValue(InputID, InputID);
        var bodyData = request.ToBytes();

        if (gameServer.ClientStatus == GameNetworkServer.CLIENT_STATUS.NONE)
        {
            if (gameServer.GetIsConnected() == false)
            {
                GameNetworkServer.Instance.ConnectToServer();
            }

            GameNetworkServer.Instance.RequestLogin(InputID, InputID);
        }

        isLoginReqPktSended = true;
        Debug.Log("LoginReqPacket sended");
    }
Пример #2
0
        public static void Login(byte[] data, IPEndPoint ip, Server server)
        {
            Models.Client current = null;   //< Who is doing the request

            // Unpack
            LoginReqPacket logPacket = Packet.Unpack <LoginReqPacket>(data);

            server.DebugInfo("Login request recieved.");
            server.DebugInfo("LoginReq Packet: " + logPacket.ToString());


            if (ClientsManagement.LoginClient(logPacket, ref current, out string message))
            {
                if (server.GetClient(current.Username).Stat == ClientStatus.Status.Logged)
                {
                    server.DebugInfo("Login: User is already logged");
                    message = "USer is already logged";
                    server.Udp.SendError(message, ip);
                    return;
                }

                // Client login
                server.DebugInfo("Client " + current.ToString() + " is now logged in.");
                string alea = Server.GenerateAlea();
                server.SetStatus(logPacket.Username, ClientStatus.Status.Logged, alea, DateTime.Now);

                // Send the profile info of the database to client
                server.DebugInfo("Sending profile info to " + logPacket.Username + ".");

                // Return user profile with the ack
                server.Udp.SendMessage(new ProfilePacket(
                                           PacketTypes.LoginAck,
                                           alea,  // New alea generated
                                           current.FirstName,
                                           current.LastName,
                                           current.Age,
                                           current.PhoneNumber,
                                           current.Gender,
                                           current.Username,
                                           current.Password,
                                           current.Email,
                                           server.GetContacts(server.GetClient(current.Username)),
                                           server.GetUnreadMessages(server.GetClient(current.Username)),
                                           server.GetAgendaEvents(current.Username),
                                           server.GetSocialNetworks(current.Username)
                                           ).Pack(), ip);

                // Mark messages as read
                server.MarkReadMessages(server.GetClient(current.Username));
            }
            else
            {
                server.DebugInfo("Login: Request not accepted");
                server.Udp.SendError(message, ip);
            }
        }
Пример #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            var client = new Client();

            client.Init("127.0.0.1", 10000);

            var packet = new LoginReqPacket();

            packet.Id = "apple";
            packet.Pw = "wpvpxh12#$";
            client.SendAsync(packet);

            mClientList.Add(client);
        }
Пример #4
0
        public static async void Login()
        {
            mScatter = new Scatter(mScatterTitle, mNetwork);

            try
            {
                await mScatter.Connect();
            }
            catch (WebSocketException ex)
            {
                string errorMsg = "";
                switch (ex.ErrorCode)
                {
                case 10061:
                    errorMsg = "데스크탑 스캐터가 실행중이지 않습니다.";
                    break;

                default:
                    errorMsg = ex.Message;
                    break;
                }
                Form1.tbConsoleQueue.Enqueue(errorMsg);
                Form1.btnLoginQueue.Enqueue(true);
                return;
            }

            var identity = await mScatter.GetIdentity(new ScatterSharp.Api.IdentityRequiredFields()
            {
                Accounts = new List <ScatterSharp.Api.Network>()
                {
                    mNetwork
                },
                Location = new List <ScatterSharp.Api.LocationFields>(),
                Personal = new List <ScatterSharp.Api.PersonalFields>()
            });

            string accountName = identity.Accounts[0].Name;

            Form1.tbConsoleQueue.Enqueue("PvP Poker 서버에 " + accountName + " 계정으로 로그인중입니다.");

            var sendPacket = new LoginReqPacket()
            {
                AccountName = accountName
            };

            mAClient.Send(sendPacket);
        }