private static async Task SendTest(IFiberRw fiberRw) { fiberRw.Write((++id).ToString()); fiberRw.Write(new Random().Next(10, 10000)); fiberRw.Write(new Random().Next(10, 10000).ToString()); await fiberRw.Flush(); }
protected virtual async Task DataOnByLine(IFiberRw fiberRw) { using (ReadBytes read = new ReadBytes(fiberRw)) { await read.Init(); var cmd = read.ReadInt32(); switch (cmd) { case 2000: //set session { var sessionid = (read.ReadInt64()).GetValueOrDefault(0); Log.TraceFormat("save sessionid {0}", sessionid); Session.SaveSessionId(sessionid); } break; case 2400: //Call It { await Calling(read); } break; case 2500: //set result { ReadResult(read); } break; default: throw new NetxException($"data error:{cmd.GetValueOrDefault()}", ErrorType.ReadErr); } } }
static async ValueTask DataOnByLine(IFiberRw <string> fiberRw) { var id = await fiberRw.ReadString(); async void Send() { try { await fiberRw.Sync.Ask(() => { fiberRw.Write(id); }); await fiberRw.Sync.Delay(10, () => { return(fiberRw.FlushAsync()); }); } catch (System.Net.Sockets.SocketException) { fiberRw.Async.Disconnect(); } }; Send(); }
private static async Task SendTest(IFiberRw fiberRw) { fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("111111111111111111111111111111111111111111111111\r\n"), false); fiberRw.Write(System.Text.Encoding.Default.GetBytes("1\r\n"), false); await fiberRw.FlushAsync(); }
private static void SendTest(IFiberRw fiberRw) { using (WriteBytes writeBytes = new WriteBytes(fiberRw)) { writeBytes.WriteLen(); writeBytes.Cmd(1001); writeBytes.Write(2); writeBytes.Write(5L); writeBytes.Write(5.5); writeBytes.Write(4.3f); writeBytes.Write(true); writeBytes.Write(false); writeBytes.Write("AAAAAAAAAAAAAA"); writeBytes.Write("BBBBBBBBBBBBBBBB"); writeBytes.Write((short)111); List <Guid> guids = new List <Guid>(); for (int i = 0; i < 10000; i++) { guids.Add(Guid.NewGuid()); } writeBytes.Write(guids); writeBytes.Flush(); } }
static void DataOn(ReadBytes read, IFiberRw <string> fiberRw) { var cmd = read.ReadInt32(); var p1 = read.ReadInt32(); var p2 = read.ReadInt64(); var p3 = read.ReadDouble(); var p4 = read.ReadSingle(); var p5 = read.ReadBoolean(); var p6 = read.ReadBoolean(); var p7 = read.ReadString(); var p8 = read.ReadMemory(); var p9 = read.ReadInt16(); // var p10 = read.ReadObject<List<Guid>>(); // read.Dispose(); using (WriteBytes writeBytes = new WriteBytes(fiberRw)) { writeBytes.WriteLen(); writeBytes.Cmd(cmd); writeBytes.Write(p1); writeBytes.Write(p2); writeBytes.Write(p3); writeBytes.Write(p4); writeBytes.Write(p5); writeBytes.Write(p6); writeBytes.Write(p7); writeBytes.Write(p8); writeBytes.Write(p9); //writeBytes.Write(p10); writeBytes.Flush(); } }
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 }); } }
public async void queries(string queryString, IFiberRw <HttpToken> fiberRw, WriteBytes write) { int count = 1; if (!string.IsNullOrEmpty(queryString)) { var values = queryString.Split('='); if (values.Length > 1) { if (int.TryParse(values[1], out int size)) { count = size; } } } if (count > 500) { count = 500; } if (count < 1) { count = 1; } try { var data = await fiberRw.UserToken.Db.LoadMultipleQueriesRows(count); await JsonSerializer.NonGeneric.Utf8.SerializeAsync(data, write.Stream); } catch (Exception e_) { write.Write(e_.Message); } OnCompleted(fiberRw, write); }
public void Json(IFiberRw<HttpToken> fiberRw,ref WriteBytes write) { JsonMessage jsonMessage = default(JsonMessage); jsonMessage.message = "Hello, World!"; JsonFormatter.SerializeObject(jsonMessage,write.Stream,System.Text.Encoding.UTF8); OnCompleted(fiberRw, write); }
public async Task Receive(IFiberRw <HttpToken> fiberRw, Memory <byte> memory_r, Memory <byte> memory_w) { var data = (await fiberRw.ReadLine(memory_r)); ReadHander(fiberRw, ref memory_r, ref memory_w, ref data); fiberRw.StreamReadFormat.Position = fiberRw.StreamReadFormat.Length; }
public void Json(IFiberRw <HttpToken> fiberRw, ref WriteBytes write) { JsonMessage jsonMessage = default(JsonMessage); jsonMessage.message = "Hello, World!"; JsonSerializer.NonGeneric.Utf8.SerializeAsync(jsonMessage, write.Stream); OnCompleted(fiberRw, write); }
static async ValueTask DataOnByLine(IFiberRw fiberRw) { using (var buffer = await fiberRw.ReadLine()) { var str = System.Text.Encoding.Default.GetString(buffer.Value.Span); Console.WriteLine(str); } }
internal AsyncToken CreateAsynToken(IFiberRw <AsyncToken> fiberRw, ConcurrentDictionary <int, MethodRegister> asyncServicesRegisterDict) { var sessionId = MakeSessionId(); var token = new AsyncToken(Container, fiberRw, asyncServicesRegisterDict, sessionId); Log.TraceFormat("make token sessionId:{0}", sessionId); return(token); }
public AsyncToken(IServiceProvider container, IFiberRw <AsyncToken> fiberRw, ConcurrentDictionary <int, MethodRegister> asyncServicesRegisterDict, long sessionId) : base(container, fiberRw, sessionId) { this.RequestOutTime = container.GetRequiredService <IOptions <ServiceOption> >().Value.ClearRequestTime; ActorRun = container.GetRequiredService <ActorRun>(); AsyncServicesRegisterDict = asyncServicesRegisterDict; asyncControllerInstanceDict = new Lazy <Dictionary <Type, AsyncController> >(); }
private static async Task SendTest(IFiberRw fiberRw) { await await fiberRw.Sync.Ask(() => { fiberRw.Write((++id).ToString()); return(fiberRw.Flush()); }); }
private async void OnCompleted(IFiberRw <HttpToken> fiberRw, WriteBytes write) { var token = fiberRw.UserToken; var length = write.Stream.Length - token.HttpHandlerPostion; write.Stream.Position = token.ContentPostion.postion; write.Write(length.ToString(), false); await write.FlushAsync(); }
public ReadBytes(IFiberRw readFiber) { this.FiberRw = readFiber; this.Packerlen = -1; Memory = null; MemoryOwner = null; HandLen = (int)LenType; IsLittleEndian = FiberRw.IsLittleEndian; }
public async void Plaintext(IFiberRw <HttpToken> fiberRw, WriteBytes write) { write.Write(_result_plaintext.Data, 0, _result_plaintext.Length); var length = write.Stream.Length - fiberRw.UserToken.HttpHandlerPostion; write.Stream.Position = fiberRw.UserToken.ContentPostion.postion; write.Write(length.ToString(), false); await write.Flush(); }
static async void RunIng(IFiberRw <string> fiberRw, string id, int time) { Console.WriteLine($"{id} start"); await Task.Delay(time); Console.WriteLine($"{id} close"); fiberRw.Write(id); await fiberRw.Flush(); }
static async ValueTask DataOnByLine(IFiberRw <string> fiberRw) { var id = await fiberRw.ReadString(); int waittime = await fiberRw.ReadInt32(); var p = await fiberRw.ReadString(); RunIng(fiberRw, id, waittime); }
public AsyncBase(IServiceProvider container, IFiberRw <AsyncToken> fiberRw, long sessionId) { Container = container; SessionId = sessionId; FiberRw = fiberRw; IsConnect = true; IWrite = fiberRw; Log = new DefaultLog(container.GetRequiredService <ILogger <AsyncToken> >()); IdsManager = container.GetRequiredService <IIds>(); }
static async ValueTask DataOnByLine(IFiberRw <string> fiberRw) { var id = await fiberRw.ReadString(); await await fiberRw.Sync.Ask(() => { fiberRw.Write(id); return(fiberRw.Flush()); }); }
public void Default(IFiberRw <HttpToken> fiberRw, ref WriteBytes write) { write.Write("<b> zysocket server</b><hr/>"); write.Write($"error not found!"); var length = write.Stream.Length - fiberRw.UserToken.HttpHandlerPostion; write.Stream.Position = fiberRw.UserToken.ContentPostion.postion; write.Write(length.ToString(), false); write.Flush(); }
protected async Task <bool> ResetToken(IFiberRw <AsyncToken> fiberRw, AsyncToken token) { if (token.IsConnect) { token.DisconnectIt(); return(false); } token.Reset(fiberRw); fiberRw.UserToken = token; return(await token.RunIt()); }
protected async Task <bool> RunCreateToken(IFiberRw <AsyncToken> fiberRw) { var token = TokenFactory.CreateAsynToken(fiberRw, AsyncServicesRegisterDict); if (!ActorTokenDict.TryAdd(token.SessionId, token)) { ActorTokenDict.AddOrUpdate(token.SessionId, token, (a, b) => token); } fiberRw.UserToken = token; return(await token.RunIt()); }
public async void Json(IFiberRw <HttpToken> fiberRw, WriteBytes write) { JsonMessage jsonMessage = default(JsonMessage); jsonMessage.message = "Hello, World!"; JsonFormatter.SerializeObject(jsonMessage, write.Stream, System.Text.Encoding.UTF8); var length = write.Stream.Length - fiberRw.UserToken.HttpHandlerPostion; write.Stream.Position = fiberRw.UserToken.ContentPostion.postion; write.Write(length.ToString(), false); await write.Flush(); }
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; } }
private async void OnCompleted(IFiberRw <HttpToken> fiberRw, WriteBytes write) { Task <int> WSend() { var length = write.Stream.Length - fiberRw.UserToken.HttpHandlerPostion; write.Stream.Position = fiberRw.UserToken.ContentPostion.postion; write.Write(length.ToString(), false); write.Flush(false); return(fiberRw.Flush()); } await await fiberRw.Sync.Ask(WSend); }
protected async Task SendToMessage(IFiberRw fiberRw, string msg) { using var wrtokenerr = new WriteBytes(fiberRw); wrtokenerr.WriteLen(); wrtokenerr.Cmd(1001); wrtokenerr.Write(msg); Task WSend() { return(wrtokenerr.FlushAsync()); } await await fiberRw.Sync.Ask(WSend); }
public async void db(IFiberRw <HttpToken> fiberRw, WriteBytes write) { try { var data = await fiberRw.UserToken.Db.LoadSingleQueryRow(); await JsonFormatter.SerializeObjectAsync(data, write.Stream, System.Text.Encoding.UTF8); } catch (Exception e_) { write.Write(e_.Message); } OnCompleted(fiberRw, write); }