Exemple #1
0
        public async Task Login(UserInfo userInfo, Action <ResponseInfo> action)
        {
            var stream = _client.Login(userInfo);

            try
            {
                await RecieveDataLoop(stream, action);
            }
            catch (Exception ex)
            {
                HandleException(ex);
            }
        }
Exemple #2
0
        static void DoWork()
        {
            var command = string.Empty;
            var user    = new UserInfo();

            while (true)
            {
                switch (command.ToLower())
                {
                case "login":

                    user.Status = Status.Online;
                    Console.WriteLine("输入用户名");
                    user.Name = Console.ReadLine();
                    Console.WriteLine("输入id");
                    try
                    {
                        user.Id = ulong.Parse(Console.ReadLine());
                    }
                    catch
                    {
                        Console.WriteLine("输入id为一串数字");
                        break;
                    }
                    _client.Login(user, new Action <ResponseInfo>(obj =>
                    {
                        if (obj is ResponseInfo)
                        {
                            switch (((ResponseInfo)obj).Code)
                            {
                            case 1:
                                var userInfo = JsonConvert.DeserializeObject <UserInfo>(((ResponseInfo)obj).JsonData);
                                Console.WriteLine($"{userInfo.Name}:{userInfo.Status}");
                                break;

                            case 2:
                                var messageInfo = JsonConvert.DeserializeObject <SendMessageInfo>(((ResponseInfo)obj).JsonData);
                                Console.WriteLine($"{messageInfo.SenderId}:{messageInfo.MessageData}");
                                break;
                            }
                        }
                    }));
                    break;

                case "sendmessage":
                    if (user.Id != 0)
                    {
                        Console.WriteLine("请输入发送的消息.....");
                        _client.SendMessage(new SendMessageInfo()
                        {
                            SenderId = user.Id, MessageData = Console.ReadLine(), IsBoard = true
                        }).Wait();
                    }
                    else
                    {
                        Console.WriteLine("请先登录......");
                    }
                    break;

                case "":
                    break;

                default:
                    Console.WriteLine("无法识别该命令");
                    break;
                }
                if (command.ToLower() == "quit")
                {
                    Console.WriteLine("即将退出客户端.........");
                    Thread.Sleep(1000);
                    return;
                }
                command = Console.ReadLine();
            }
        }