示例#1
0
        protected virtual async Task ReadResultAsync(IFiberRw fiberRw)
        {
            var id = await fiberRw.ReadInt64();

            if (await fiberRw.ReadBoolean()) //is error
            {
                AsyncBackResult(new Result()
                {
                    Id       = id,
                    ErrorId  = await fiberRw.ReadInt32(),
                    ErrorMsg = await fiberRw.ReadString()
                });
            }
            else
            {
                var count = await fiberRw.ReadInt32();

                List <byte[]> args = new List <byte[]>(count);
                for (int i = 0; i < count; i++)
                {
                    args.Add(await fiberRw.ReadArray());
                }

                AsyncBackResult(new Result(args)
                {
                    Id = id
                });
            }
        }
示例#2
0
        static async ValueTask DataOnByLine(IFiberRw fiberRw)
        {
            var len = await fiberRw.ReadInt32();

            var cmd = await fiberRw.ReadInt32();

            var p1 = await fiberRw.ReadInt32();

            var p2 = await fiberRw.ReadInt64();

            var p3 = await fiberRw.ReadDouble();

            var p4 = await fiberRw.ReadSingle();

            var p5 = await fiberRw.ReadBoolean();

            var p6 = await fiberRw.ReadBoolean();

            var p7 = await fiberRw.ReadString();



            using (var p8 = await fiberRw.ReadMemory())
            {
                var p9 = await fiberRw.ReadInt16();

                var p10 = await fiberRw.ReadObject <List <Guid> >();


                //fiberRw.Write(len);
                //fiberRw.Write(cmd);
                //fiberRw.Write(p1);
                //fiberRw.Write(p2);
                //fiberRw.Write(p3);
                //fiberRw.Write(p4);
                //fiberRw.Write(p5);
                //fiberRw.Write(p6);
                //fiberRw.Write(p7);
                //fiberRw.Write(p8);
                //fiberRw.Write(p9);
                //// fiberRw.Write(p10);
                //await fiberRw.Flush();
            }
        }
示例#3
0
        static async Task ReadCommand(IFiberRw fiberRw)
        {
            var cmd = await fiberRw.ReadInt32();

            switch (cmd)
            {
            case 1001:
            {
                var isSuccess = await fiberRw.ReadBoolean();

                Console.WriteLine(await fiberRw.ReadString());

                if (isSuccess)
                {
                    Data data = new Data()
                    {
                        Id   = Guid.NewGuid(),
                        Time = DateTime.Now
                    };

                    await await fiberRw.Sync.Ask(() =>
                        {
                            fiberRw.Write(2000);     //发送数据
                            fiberRw.Write(data);


                            fiberRw.Write(3000);     //发送消息
                            fiberRw.Write("EMMMMMMMMMMMMMMMMMMMMM...");
                            return(fiberRw.Flush());
                        });
                }
            }
            break;

            case 3001:
            {
                using (var data = await fiberRw.ReadMemory())
                {
                    Console.WriteLine(data.Value.Length);

                    await await fiberRw.Sync.Ask(() =>
                        {
                            fiberRw.Write(3000);
                            fiberRw.Write("EMMMMMMMMMMMMMMMMMMMMM");
                            return(fiberRw.Flush());
                        });
                }
            }
            break;
            }
        }
示例#4
0
        static async Task ReadCommand(IFiberRw fiberRw)
        {
            var cmd = await fiberRw.ReadInt32();

            switch (cmd)
            {
            case 1001:
            {
                var isSuccess = await fiberRw.ReadBoolean();

                Console.WriteLine(await fiberRw.ReadString());

                if (isSuccess)
                {
                    TestLib.Data data = new TestLib.Data()
                    {
                        Id   = Guid.NewGuid(),
                        Time = DateTime.Now
                    };

                    fiberRw.Write(2000);         //发送数据
                    fiberRw.Write(data);
                    await fiberRw.Flush();

                    fiberRw.Write(3000);         //发送消息
                    fiberRw.Write("EMMMMMMMMMMMMMMMMMMMMM...");
                    await fiberRw.Flush();
                }
            }
            break;

            case 3001:
            {
                Console.WriteLine(await fiberRw.ReadString());
            }
            break;
            }
        }
示例#5
0
        async Task ReadCommand(IFiberRw fiberRw)
        {
            var cmd = await fiberRw.ReadInt32();

            switch (cmd)
            {
            case 1001:
            {
                var isSuccess = await fiberRw.ReadBoolean();

                if (isSuccess)
                {
                    await fiberRw.ReadString();

                    await await fiberRw.Sync.Ask(() =>
                        {
                            fiberRw.Write(2000);
                            return(fiberRw.Flush());
                        });
                }
                else
                {
                    string msg = await fiberRw.ReadString();

                    this.BeginInvoke(new EventHandler((a, b) => {
                            MessageBox.Show(msg);
                            LogOn();
                        }));
                }
            }
            break;

            case 2001:
            {
                var list = await fiberRw.ReadObject <List <string> >();

                this.BeginInvoke(new EventHandler((a, b) =>
                    {
                        this.listView1.Items.Clear();
                        this.comboBox1.Items.Clear();
                        foreach (var item in list)
                        {
                            this.listView1.Items.Add(new ListViewItem(item));
                        }
                        this.comboBox1.Items.Add("ALL");
                        this.comboBox1.Items.AddRange(list.ToArray());
                    }));
            }
            break;

            case 2002:    //通知新用户登入
            {
                var user = await fiberRw.ReadString();

                this.BeginInvoke(new EventHandler((a, b) =>
                    {
                        this.listView1.Items.Add(user, user, 0);
                        this.comboBox1.Items.Add(user);
                    }));
            }
            break;

            case 3001:
            {
                string username = await fiberRw.ReadString();

                string msg = await fiberRw.ReadString();

                this.BeginInvoke(new EventHandler((a, b) =>
                    {
                        this.richTextBox1.AppendText($"{username}:{msg}\r\n");
                    }));
            }
            break;

            case 3002:
            {
                string username = await fiberRw.ReadString();

                string msg = await fiberRw.ReadString();

                this.BeginInvoke(new EventHandler((a, b) =>
                    {
                        this.richTextBox1.AppendText($"{username}>>{msg}\r\n");
                    }));
            }
            break;

            case 4000:
            {
                string username = await fiberRw.ReadString();


                this.BeginInvoke(new EventHandler((a, b) =>
                    {
                        this.listView1.Items.RemoveByKey(username);
                        this.comboBox1.Items.Remove(username);
                    }));
            }
            break;
            }
        }