예제 #1
0
        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);
        }
예제 #2
0
파일: Peer.cs 프로젝트: habbes/organ
        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);
        }