Ejemplo n.º 1
0
 protected override async Task ExecuteAsync(CancellationToken stoppingToken)
 {
     while (!stoppingToken.IsCancellationRequested)
     {
         try
         {
             foreach (var item in SessionManager.GetTcpAll())
             {
                 if (item.ActiveTime.AddSeconds(Configuration.TcpReaderIdleTimeSeconds) < DateTime.Now)
                 {
                     item.ReceiveTimeout.Cancel();
                 }
             }
             Logger.LogInformation($"[Check Receive Timeout]");
             Logger.LogInformation($"[Session Online Count]:{SessionManager.TcpSessionCount}");
         }
         catch (Exception ex)
         {
             Logger.LogError(ex, $"[Receive Timeout]");
         }
         finally
         {
             await Task.Delay(TimeSpan.FromSeconds(Configuration.TcpReceiveTimeoutCheckTimeSeconds), stoppingToken);
         }
     }
 }
Ejemplo n.º 2
0
        public override Task <TcpSessionInfoReply> GetTcpSessionAll(Empty request, ServerCallContext context)
        {
            Auth(context);
            var result = jT808SessionManager.GetTcpAll();
            TcpSessionInfoReply reply = new TcpSessionInfoReply();

            foreach (var item in result)
            {
                reply.TcpSessions.Add(new SessionInfo
                {
                    LastActiveTime  = item.ActiveTime.ToString("yyyy-MM-dd HH:mm:ss"),
                    StartTime       = item.StartTime.ToString("yyyy-MM-dd HH:mm:ss"),
                    RemoteAddressIP = item.RemoteEndPoint.ToString(),
                    TerminalPhoneNo = item.TerminalPhoneNo
                });
            }
            return(Task.FromResult(reply));
        }