public override async Task <StreamRecord> uploadStream(IAsyncStreamReader <VideoChunk> requestStream, ServerCallContext context) { var streamId = Guid.NewGuid(); var record = await _repo.AddStream(streamId); var db = _redisMultiplexer.GetDatabase(); while (await requestStream.MoveNext(context.CancellationToken)) { var chunk = requestStream.Current.Chunk; await db.PublishAsync(streamId.ToString(), ToRedisValue(new VideoChunk { VideoId = streamId.ToString(), Chunk = chunk })); } return(new StreamRecord { VideoId = streamId.ToString(), StreamName = streamId.ToString() }); }