Esempio n. 1
0
 private static async Task RunEventClient(Core.Rpc.ServiceMesh.ServiceMeshClient client)
 {
     for (int i = 0; i < 10000; i++)
     {
         await SendMessage(client, i);
     }
 }
Esempio n. 2
0
        private static async Task RunEventClientOnSameStream(int id, Core.Rpc.ServiceMesh.ServiceMeshClient client)
        {
            using (var eventStream = client.EventStream())
            {
                for (int count = 0; count < 10000; count++)
                {
                    var message = new StreamingMessage();
                    message.RequestId = $"{id}:{count}";
                    await eventStream.RequestStream.WriteAsync(message);

                    var source = new CancellationTokenSource();
                    var task   = eventStream.ResponseStream.MoveNext(source.Token);
                    source.CancelAfter(TimeSpan.FromMilliseconds(50));

                    if (await task)
                    {
                        Console.WriteLine($"Response: {eventStream.ResponseStream.Current.RequestId}");
                    }
                    else
                    {
                        Console.WriteLine("Response Not Recieved In A Timely Manner!");
                        throw new TimeoutException();
                    }
                }

                await eventStream.RequestStream.CompleteAsync();
            }
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.WriteLine(typeof(OrbitalForge.ServiceMesh.Core.Rpc.ServiceMesh.ServiceMeshClient));
            Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
            var     client  = new Core.Rpc.ServiceMesh.ServiceMeshClient(channel);

            // RunEventClient(client).Wait();
            Task.WaitAll(
                RunEventClientOnSameStream(0, client),
                RunEventClientOnSameStream(1, client),
                RunEventClientOnSameStream(2, client),
                RunEventClientOnSameStream(3, client),
                RunEventClientOnSameStream(4, client));
        }
Esempio n. 4
0
        private static async Task SendMessage(Core.Rpc.ServiceMesh.ServiceMeshClient client, int count)
        {
            using (var eventStream = client.EventStream())
            {
                var message = new StreamingMessage();
                message.RequestId = count.ToString();
                await eventStream.RequestStream.WriteAsync(message);

                var responseRecieved = await eventStream.ResponseStream.MoveNext();

                if (responseRecieved)
                {
                    Console.WriteLine($"Response: {eventStream.ResponseStream.Current.RequestId}");
                }

                await eventStream.RequestStream.CompleteAsync();
            }
        }