示例#1
0
    private void HandleMsg3(LoginRspMsg msg)
    {
        var type = msg.GetType();

        Debug.LogFormat("M3 - {0}", msg.Player);
        ShowAsText(string.Format("handle msg => {0} - {1}|{2}", type.FullName, msg.Player.Name, msg.Player.Status));
    }
示例#2
0
        static void Main(string[] args)
        {
            Debug.DefaultDebugger = new ServerConsoleDebugger();
            MessageProcessor.DefaultSerializer = new MsgPackBitSerializer();

            /*
             * LoginReqMsg msg = new LoginReqMsg {
             *  Account = "account",
             *  Password = "******",
             *  Extra = "去去去",
             * };
             *
             * //  var bytes = Serialize(msg);
             * var bytes = MessagePackSerializer.Serialize(msg);
             * var obj = MessagePackSerializer.Deserialize<LoginReqMsg>(bytes);
             * Console.WriteLine(MessagePackSerializer.ConvertToJson(bytes));
             */

            MessageProcessor messageProcessor = new MessageProcessor();

            messageProcessor.Run(TaskScheduler.Default);
            MessageProcessor.RegisterHandler <LoginReqMsg>((msg, fromLink) => {
                var rsp = new LoginRspMsg {
                    Player = new Model.Player {
                        Status = Model.Status.Online,
                        Name   = "二逼青年"
                    },
                    SeqNumber = msg.SeqNumber,
                };
                var bytes = MessageProcessor.PackageMessage(rsp);
                fromLink.SendToRemoteAsync(bytes.buffer, 0, bytes.len);
                //  Debug.LogFormat("{0}-{1}-{2}", msg.Account, msg.Password, msg.Extra);
            });

            var udpServer = new UdpServer(messageProcessor);

            udpServer.Start(IPAddress.Any, 8063);

            do
            {
                var input = Console.ReadLine();
            } while (true);

            /*
             * MessageProcessor.RegisterHandler<LoginReqMsg>((msg, remote) => {
             *  Debug.LogFormat("LoginReqMsg - {0}|{1}|{2}", msg.Account, msg.Password, msg.Extra);
             *  var loginReq = new LoginRspMsg {
             *      Player = new Model.Player {
             *          Name = "二逼青年",
             *          Status = Model.Status.Online,
             *          Mails = new System.Collections.Generic.Dictionary<int, Model.Mail> {
             *              {
             *                  234,
             *                  new Model.Mail {
             *                      Id = 234,
             *                      Title = "测试",
             *                      Content ="test"
             *                  }
             *              }
             *          },
             *      }
             *  };
             *  var loginReqBytes = MessageProcessor.DefaultSerializer.Serialize(
             *       MessageProcessor.PackageMessage(loginReq));
             *  udpServer.Send(loginReqBytes, remote);
             * });
             */
        }