public override async Task <PutResponse> Put(PutRequest request, ServerCallContext context) { var channel = channels.GetChannel(request.Channel); var message = new Message() { Timestamp = request.Timestamp, Content = request.Message.ToByteArray() }; await channel.Put(message); var response = new PutResponse() { ResponseStatus = ResponseHelpers.CreateOkStatus() }; return(response); }
public async Task <IChannel> GetChannel(string channelId) { IChannel channel = channels.GetChannel(channelId); if (channel != null) { return(channel); } var location = await directory.GetChannelLocation(channelId); var remotePeerClient = new RemotePeer(location.Host, location.Port); channel = new RemoteChannel(channelId, remotePeerClient); channels.AddChannel(channel); return(channel); }