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:
parent
52b0d4d8ff
commit
a0c8dbee72
493 changed files with 57790 additions and 3 deletions
35
Assets/Scripts/MagicOnion/AsyncStreamReaderExtensions.cs
Normal file
35
Assets/Scripts/MagicOnion/AsyncStreamReaderExtensions.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue