public async static Task RunClient() { var proxy = new ClientProxyBuilder().UseServer("127.0.0.1:6201").BuildDefault(); using (var client = proxy.GetClient <MathCommon.MathClient>()) { Console.WriteLine("ready to send message"); var random = new Random(); AddReq req = new AddReq { A = random.Next(1, 10000), B = random.Next(1, 10000) }; Console.WriteLine("call sever MathService.Add --> {0}+{1} ", req.A, req.B); try { var res = await client.AddAsync(req); Console.WriteLine("server repsonse:<-----{0}+{1}={2}", req.A, req.B, res.Data.C); } catch (Exception ex) { Console.WriteLine("error occ {0}", ex.Message); } } Console.WriteLine("channel is closed!"); }
private void Run() { //读取测试的文件 var tcFilePath = Path.Combine(CommonUtils.GetAppRootPath(), "testcase", this._options.TestCase + ".txt"); if (!File.Exists(tcFilePath)) { Console.WriteLine(tcFilePath); Console.WriteLine("对应的测试文件不存在"); System.Environment.Exit(1); return; } Dictionary <string, TestCase> tcCache = new Dictionary <string, TestCase>(); using (StreamReader reader = File.OpenText(tcFilePath)) { string line; while ((line = reader.ReadLine()) != null) { line = line.Trim(); if (string.IsNullOrEmpty(line)) { continue; } if (line.StartsWith("#")) { continue; } var tc = ParseFromLine(line); tcCache.Add(tc.Id, tc); } } var proxy = new ClientProxyBuilder() .UseServer(this._options.Server) .ConfigureServices(services => { services.ScanAddDescriptorFactory(); services.AddMessageParser(); }) .ConfigureLoggingServices(logger => logger.AddConsole()) .BuildDefault(); //创建链接 using (var caller = proxy.GetService <ICallInvoker <AmpMessage> >()) { var parser = proxy.GetService <IMessageParser <AmpMessage> >(); //开始跑测试了 foreach (var kvtc in tcCache) { RunTestCase(caller, kvtc.Value, parser); } } }
public async static Task RunClient() { var proxy = new ClientProxyBuilder().UseServer("127.0.0.1:6201") .ConfigureServices(services => { services.AddSingleton <IProtobufObjectFactory, ProtobufObjectFactory>(); services.AddSingleton <IAuditLoggerFormat <AmpMessage>, AuditLoggerFormat>(); }) .ConfigureLoggingServices(logger => logger.AddSerilog(dispose: true)) .BuildDefault(); using (var client = proxy.GetClient <MathCommon.MathClient>()) { Console.WriteLine("ready to send message"); var random = new Random(); var i = 0; while (i < 10) { AddReq req = new AddReq { A = random.Next(1, 10000), B = random.Next(1, 10000) }; Console.WriteLine("call sever MathService.Add --> {0}+{1} ", req.A, req.B); try { var res = await client.AddAsync(req); Console.WriteLine("server repsonse:<-----{0}+{1}={2}", req.A, req.B, res.Data?.C); } catch (Exception ex) { Console.WriteLine("error occ {0}", ex.Message); } i++; } } Console.WriteLine("Press any key to quit!"); Console.ReadKey(); }