private async Task <string> RunSproAsync(string sessionType, string username) { try { var spro = await GetOrCreateSproServiceInstanceAsync(sessionType, username); var fabricClient = new FabricClient(); var channel = new Channel(spro.Ip, spro.Port, ChannelCredentials.Insecure); var client = new NativeSession.NativeSessionClient(channel); var request = new GenerateRequest { Username = username, Type = sessionType, Payload = DateTime.Now.Ticks.ToString() }; var generateReply = await client.GenerateAsync(request, new CallOptions()); var response = generateReply.Response; await channel.ShutdownAsync(); return(response); } catch (Exception e) { throw; } }
static void Main(string[] args) { Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure); var client = new NativeSession.NativeSessionClient(channel); var openSessionResponse = client.OpenSession(new NewSessionRequest { Username = "******", Type = "en" }); Trace.Assert(openSessionResponse.Idsession != ""); openSessionResponse = client.OpenSession(new NewSessionRequest { Username = "******", Type = "en" }); Trace.Assert(openSessionResponse.Idsession != ""); openSessionResponse = client.OpenSession(new NewSessionRequest { Username = "******", Type = "fr" }); Trace.Assert(openSessionResponse.Idsession == ""); const string payload = "123"; var generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "en", Payload = payload }); Trace.Assert(generateResponse.Response == payload); generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "en", Payload = payload }); Trace.Assert(generateResponse.Response == payload); generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "en", Payload = payload }); Trace.Assert(generateResponse.Response == payload); generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "fr", Payload = payload }); Trace.Assert(generateResponse.Response != payload); generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "en", Payload = payload }); Trace.Assert(generateResponse.Response != payload); Thread.Sleep(1000); generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "en", Payload = payload }); Trace.Assert(generateResponse.Response == payload); Thread.Sleep(5000); generateResponse = client.Generate(new GenerateRequest { Username = "******", Type = "en", Payload = payload }); Trace.Assert(generateResponse.Response == payload); Thread.Sleep(5000); var closeResponse = client.CloseSession(new CloseSessionRequest { Username = "******", Type = "en" }); Trace.Assert(closeResponse.Ok == "ok"); channel.ShutdownAsync().Wait(); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); }