Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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();
        }