Example #1
0
    /// <summary>
    /// 对协议的编解码测试
    /// </summary>
    private void TestCodec()
    {
        LoginReqMsg msg  = new LoginReqMsg("123", "pwd");
        ByteBuffer  buff = new ByteBuffer(Codec.Encode(msg));

        LoginReqMsg login = (LoginReqMsg)Codec.Decode(buff);

        Debug.Log(login.GetCommand());

        Debug.Log(login.id);

        Debug.Log(login.pwd);
    }
Example #2
0
    public void OnClickDeserialize()
    {
        var loginMsg = new LoginReqMsg {
            Account  = "account",
            Password = "******",
            Extra    = "哈哈哈",
        };
        var reqMsgBytes     = MessagePackSerializer.Serialize(loginMsg);
        var reqMsgreqMsgObj = MessagePackSerializer.Deserialize <LoginReqMsg>(reqMsgBytes);

        var registerMsg = new RegisterReqMsg {
            Phone    = "1350000",
            Authcode = "验证码",
        };

        var fs  = new FileStream(Path.Combine(Application.dataPath, "Resources", "Test2.bytes"), FileMode.Open);
        var _as = new byte[fs.Length];

        fs.Read(_as, 0, _as.Length);
        fs.Close();
        fs.Dispose();

        var a = new CancellationTokenSource();

        Debug.LogFormat("unity main {0}", Thread.CurrentThread.ManagedThreadId);


        var mainThreadTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext();

        Task.Run(() => {
            Debug.LogFormat("Main Task Thread [{0}]", Thread.CurrentThread.ManagedThreadId);
            var msgpackTask = new Task(async() => {
                Debug.LogFormat("MsgpackTask Task Thread [{0}]", Thread.CurrentThread.ManagedThreadId);
                await Task.Delay(100);
                var registerMsgBytes = MessagePackSerializer.Serialize(registerMsg);
                var deserializeMsg   = MessagePackSerializer.Deserialize <RegisterReqMsg>(registerMsgBytes);
                text.text            = string.Format("Account : {0}-{1}-{2}", reqMsgreqMsgObj.Account
                                                     , reqMsgreqMsgObj.Password, reqMsgreqMsgObj.Extra);
                text2.text = string.Format("Account : {0}-{1}", deserializeMsg.Phone, deserializeMsg.Authcode);
            });
            msgpackTask.Start(mainThreadTaskScheduler);

            var webTask = new Task(async() => {
                Debug.LogFormat("before await Thread [{0}]", Thread.CurrentThread.ManagedThreadId);
                await Wait();
                Debug.LogFormat("after await Thread [{0}]", Thread.CurrentThread.ManagedThreadId);
            });
            webTask.Start(mainThreadTaskScheduler);
        }, _cancellationTokenSource.Token);
    }
Example #3
0
    public void OnClickLogin()
    {
        freePlane.SetActive(true);
        tip.text = "";
        if ((userName.text == "") || (userPass.text == ""))
        {
            tip.text = "请输入正确用户名或密码!";
        }
        LoginReqMsg reqMsg = new LoginReqMsg(userName.text, userPass.text);

        // 发送登陆消息
        ClientSocket.Instance().Send(reqMsg);
        Debug.Log("Send: " + reqMsg.ToString());
        freePlane.SetActive(false);
    }
Example #4
0
 private void SendMsg(App app)
 {
     Task.Run(async() => {
         await Task.Delay(1000);
         do
         {
             var loginReq = new LoginReqMsg {
                 Account   = app.UdpClient.ConectionId.ToString(),
                 Password  = "******",
                 SeqNumber = System.DateTime.Now.Millisecond,
             };
             app.UdpClient.SendMessage(loginReq);
             await Task.Delay(16);
         } while (app.Status == App.AppStatus.Running);
     });
 }
Example #5
0
        private void ClientAppTest()
        {
            Debug.DefaultDebugger = new Server.ServerConsoleDebugger();

            MessageProcessor.DefaultSerializer = new Server.Serializer.MsgPackBitSerializer();

            var messageProcessor = new MessageProcessor();

            if (SynchronizationContext.Current == null)
            {
                SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
            }
            messageProcessor.Run(TaskScheduler.FromCurrentSynchronizationContext());

            UdpClient udpClient = new UdpClient();

            udpClient.Run(IPAddress.Parse("192.168.0.128"), 8063);
            udpClient.OnRecvKcpPackage += messageProcessor.ProcessBytePackage;

            Task.Run(async() => {
                int count = 0;
                await Task.Delay(1000);
                Assert.False(udpClient.ConectionId == 0);
                var conv = udpClient.ConectionId.ToString();
                while (count++ < 10000)
                {
                    await Task.Delay(33);
                    var msg = new LoginReqMsg {
                        Account   = conv,
                        Password  = "******",
                        Extra     = count.ToString(),
                        SeqNumber = count,
                    };
                    udpClient.SendMessage(msg);
                    udpClient.SendMessage(msg);
                    udpClient.SendMessage(msg);
                }
                await Task.Delay(600 * 1000);
                udpClient.Stop();
                messageProcessor.Stop();
            });
        }
Example #6
0
    void OnLoginMsgResponse(MsgBase msg)
    {
        LoginReqMsg loginMsg = (LoginReqMsg)msg;

        Debug.Log(msg.GetCommand().ToString() + "/" + loginMsg.id + "/" + loginMsg.pwd);
    }
Example #7
0
    private void TestSend()
    {
        LoginReqMsg msg = new LoginReqMsg("666", "pwd");

        ClientSocket.Instance().Send(msg);
    }