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; } }
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(); } }
static async Task <bool> ReadCommand(IFiberRw <UserInfo> fiberRw) { int?cmd = await fiberRw.ReadInt32(); switch (cmd) { case 1000: //用户登入,我们需要读取一个用户名 一个密码 然后验证 { string username = await fiberRw.ReadString(); string password = await fiberRw.ReadString(); if (string.Equals(username, "test", StringComparison.Ordinal) && string.Equals(password, "password", StringComparison.Ordinal)) { fiberRw.UserToken = new UserInfo() { UserName = username, Password = password }; await await fiberRw.Sync.Ask(() => { fiberRw.Write(1001); //发送登入成功 fiberRw.Write(true); fiberRw.Write("logon ok"); return(fiberRw.Flush()); }); } else { await await fiberRw.Sync.Ask(() => { fiberRw.Write(1001); //发送登入失败 fiberRw.Write(false); fiberRw.Write("logon fail"); return(fiberRw.Flush()); }); } } break; case 2000: //读取一个数据 然后保存到当前用户对象中 { if (fiberRw.UserToken != null) { fiberRw.UserToken.Data = await fiberRw.ReadObject <TestLib.Data>(); } else { fiberRw.Async.Disconnect(); } } break; case 3000: //在屏幕上显示消息 然后告诉客户端显示成功 { using (var data = await fiberRw.ReadMemory()) { await await fiberRw.Sync.Ask(() => { fiberRw.Write(3001); fiberRw.Write("msg show"); return(fiberRw.Flush()); }); } } break; } return(false); }