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(); } }
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(); } }