From 9f4633185d9d53125645e83448b2d3747c904857 Mon Sep 17 00:00:00 2001 From: Chamuth Chamandana Date: Mon, 3 Jul 2023 17:59:09 +0530 Subject: [PATCH] connection keep alive --- TallyDB/Core/Constants.cs | 3 ++- TallyDB/Server/ClientHandler.cs | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/TallyDB/Core/Constants.cs b/TallyDB/Core/Constants.cs index d48b47d..c5ad39f 100644 --- a/TallyDB/Core/Constants.cs +++ b/TallyDB/Core/Constants.cs @@ -1,4 +1,4 @@ -using static System.Environment; +using static System.Environment; namespace TallyDB.Core { @@ -14,5 +14,6 @@ public static class Constants #else public static string TallyRoot = Path.Join(GetFolderPath(SpecialFolder.ApplicationData), "TallyDB/"); #endif + public static TimeSpan ConnectionTimeout = TimeSpan.FromMinutes(1); } } diff --git a/TallyDB/Server/ClientHandler.cs b/TallyDB/Server/ClientHandler.cs index cedcd32..f9b4f5a 100644 --- a/TallyDB/Server/ClientHandler.cs +++ b/TallyDB/Server/ClientHandler.cs @@ -3,6 +3,7 @@ using System.Text; using TallyDB.Config; using TallyDB.Config.Auth; +using TallyDB.Core; using TallyDB.Server.QueryProcessor; using TallyDB.Server.Types; @@ -20,6 +21,7 @@ public void Handle(Socket client) User? authUser = null; var authStorage = new AuthStorage(new FileOperator()); var requestProcessor = new RequestProcessor(); + var connectionTimeout = DateTime.Now.Add(Constants.ConnectionTimeout); while (true) { @@ -42,6 +44,15 @@ public void Handle(Socket client) value += (Convert.ToChar(data[i])); } + #region Connection Keep Alive + // reset connection timeout + if (connectionTimeout < DateTime.Now) + { + break; + } + connectionTimeout = DateTime.Now.Add(Constants.ConnectionTimeout); + #endregion + var request = JsonConvert.DeserializeObject(value); if (request != null)