Initial Client/Server Communication

#1
Followed the MagicOnion quickstart guide, borrowing code from the chat sample app to get something working
This commit is contained in:
hyperion51 2020-02-26 17:48:40 +00:00
commit a0c8dbee72
493 changed files with 57790 additions and 3 deletions

View file

@ -0,0 +1,35 @@
using Grpc.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace MagicOnion
{
public static class AsyncStreamReaderExtensions
{
public static async Task ForEachAsync<T>(this IAsyncStreamReader<T> stream, Action<T> action, CancellationToken cancellation = default(CancellationToken))
{
using (stream as IDisposable)
{
while (!cancellation.IsCancellationRequested && await stream.MoveNext(cancellation))
{
action(stream.Current);
}
}
}
public static async Task ForEachAsync<T>(this IAsyncStreamReader<T> stream, Func<T, Task> asyncAction, CancellationToken cancellation = default(CancellationToken))
{
using (stream as IDisposable)
{
while (!cancellation.IsCancellationRequested && await stream.MoveNext(cancellation))
{
await asyncAction(stream.Current);
}
}
}
}
}