public override async Task Join(IAsyncStreamReader <Message> requestStream, IServerStreamWriter <Message> responseStream, ServerCallContext context) { if (!await requestStream.MoveNext()) { return; } do { _chatroomService.Join(requestStream.Current.User, responseStream); await _chatroomService.BroadcastMessageAsync(requestStream.Current); } while (await requestStream.MoveNext()); _chatroomService.Remove(context.Peer); }