Example #1
0
        public override async Task <IMessage <PingResponse> > PingAsync(IMessage <PingRequest> param, CancellationToken ct)
        {
            PingRequest request = param.Payload.Deserialize();

            if (request.DelayMilliseconds > 0)
            {
                UInt16 delayMs = Math.Min(MaxDelayMilliseconds, request.DelayMilliseconds);
                await Task.Delay(delayMs);
            }

            if (request.Payload.Contains("4"))
            {
                return(Message.FromError <PingResponse>(new Error
                {
                    error_code = 4,
                    message = "Four? Why would you think I like the number 4? Reverse likes 4, but not me.",
                }));
            }

            var response = new PingResponse {
                Payload = request.Payload
            };

            return(Message.FromPayload(response));
        }
Example #2
0
        public override async Task <IMessage <PingResponse> > PingAsync(IMessage <PingRequest> param, CancellationToken ct)
        {
            PingRequest request = param.Payload.Deserialize();

            if (request.DelayMilliseconds > 0)
            {
                UInt16 delayMs = Math.Min(MaxDelayMilliseconds, request.DelayMilliseconds);
                await Task.Delay(delayMs);
            }

            var response = new PingResponse {
                Payload = string.Concat(request.Payload.Reverse())
            };

            return(Message.FromPayload(response));
        }
Example #3
0
        private static async Task DoPingPong(PingPongProxy <EpoxyConnection> proxy, int requestNum, string payload, UInt16 delay)
        {
            var request = new PingRequest {
                Payload = payload, DelayMilliseconds = delay
            };
            IMessage <PingResponse> message = await proxy.PingAsync(request);

            if (message.IsError)
            {
                Error error = message.Error.Deserialize();
                Console.WriteLine($"Request #{requestNum} failed: {error.error_code}: {error.message}");
            }
            else
            {
                PingResponse response = message.Payload.Deserialize();
                Console.WriteLine($"Request #{requestNum} response: \"{response.Payload}\". Delay: {delay}");
            }
        }