예제 #1
0
        static async Task HBLoop(int count)
        {
            bool loopControl(int count)
            => count == -1 ? true : count-- > 0;

            try
            {
                while (loopControl(count))
                {
                    var hbMessage = new HeartBeatRequestMessage
                    {
                        Id      = "♥♥HB♥♥",
                        POSData = new POSData {
                            Id = $"POS{POSId}"
                        }
                    };
                    await Channel.SendAsync(hbMessage).ConfigureAwait(false);

                    await Task.Delay(10 * 1000);
                }
            }
            catch (Exception _e)
            {
                Console.WriteLine($"Exception in HBLoop : {_e}");
            }
        }
예제 #2
0
 public async Task SendHeartBeatRequest()
 {
     HeartBeatRequestMessage heartBeatRequestMessage = new HeartBeatRequestMessage
     {
         Id      = "CLIENT HeartBeat MESSAGE RECEIVED - client is still alive",
         POSData = new POSData {
             Id = "POS001"
         }
     };
     await _clientChannel.SendAsync <HeartBeatRequestMessage>(heartBeatRequestMessage);
 }
예제 #3
0
        public async Task SendHeartBeartRequestAndReceiveAsync()
        {
            HeartBeatRequestMessage heartBeatRequestMessage = new HeartBeatRequestMessage
            {
                Id      = "CLIENT HeartBeat MESSAGE RECEIVED - client is still alive",
                POSData = new POSData {
                    Id = "POS001"
                }
            };
            var response = await _clientChannel.SendAndReceiveAsync <HeartBeatRequestMessage, HeartBeatResponseMessage>(heartBeatRequestMessage);

            Debug.WriteLine(response.Id);
        }
예제 #4
0
        public static Task <HeartBeatResponseMessage> HandleMessage(HeartBeatRequestMessage request)
        {
            Received(request);
            var response = new HeartBeatResponseMessage {
                Id      = request.Id,
                POSData = request.POSData,
                Result  = new Result {
                    Status = Status.Success
                }
            };

            Sending(response);
            return(Task.FromResult(response));
        }
예제 #5
0
        public async Task <ActionResult <HeartBeatRequestMessage> > RequestAsync([FromBody] HeartBeatRequestMessage message)
        {
            Debug.WriteLine($"message recieved : {message.Id}");
            var response = new HeartBeatResponseMessage
            {
                Id      = message.Id,
                POSData = message.POSData,
                Result  = new Result {
                    Status = Status.Success
                }
            };

            return(Ok(response));
        }
예제 #6
0
        static async Task HBLoop( )
        {
            while (true)
            {
                var hbMessage = new HeartBeatRequestMessage {
                    Id      = "♥♥HB♥♥",
                    POSData = new POSData {
                        Id = "POS001 "
                    }
                };
                await Channel.SendAsync(hbMessage).ConfigureAwait(false);

                await Task.Delay(10 * 1000);
            }
        }
예제 #7
0
        static async Task HBLoop(int count)
        {
            while (count-- > 0)
            {
                var hbMessage = new HeartBeatRequestMessage {
                    Id      = "♥♥HB♥♥",
                    POSData = new POSData {
                        Id = $"POS{POSId}"
                    }
                };
                await Channel.SendAsync(hbMessage).ConfigureAwait(false);

                await Task.Delay(10 * 1000);
            }
        }
예제 #8
0
        public static Task <HeartBeatResponseMessage> HandleMessage(IChannel channel, HeartBeatRequestMessage request)
        {
            Received(channel, request);

            POSController.ProcessHeartBeat(request.POSData.Id, channel);


            var response = new HeartBeatResponseMessage {
                Id      = request.Id,
                POSData = request.POSData,
                Result  = new Result {
                    Status = Status.Success
                }
            };

            Sending(response);
            return(Task.FromResult(response));
        }