From f4d5eb0fdd907a03012afc58bc22bdef2ea86b02 Mon Sep 17 00:00:00 2001 From: Esiur Project Date: Sat, 13 Aug 2022 04:02:21 +0300 Subject: [PATCH] Fix --- Esiur/Net/IIP/DistributedConnection.cs | 7 +++++-- Esiur/Net/IIP/DistributedConnectionProtocol.cs | 10 ++++------ Esiur/Net/IIP/DistributedServer.cs | 17 +++++++---------- Esiur/TODO | 6 ++---- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/Esiur/Net/IIP/DistributedConnection.cs b/Esiur/Net/IIP/DistributedConnection.cs index 859110c..3d2352f 100644 --- a/Esiur/Net/IIP/DistributedConnection.cs +++ b/Esiur/Net/IIP/DistributedConnection.cs @@ -1213,6 +1213,9 @@ public partial class DistributedConnection : NetworkConnection, IStore [Attribute] public bool AutoReconnect { get; set; } = false; + [Attribute] + public uint ReconnectInterval { get; set; } = 5; + [Attribute] public string Username { get; set; } @@ -1317,7 +1320,7 @@ public partial class DistributedConnection : NetworkConnection, IStore if (AutoReconnect) { Console.Write("Reconnecting socket..."); - Task.Delay(5000).ContinueWith((x) => connectSocket(socket)); + Task.Delay((int)ReconnectInterval).ContinueWith((x) => connectSocket(socket)); } else { @@ -1553,7 +1556,7 @@ public partial class DistributedConnection : NetworkConnection, IStore else if (AutoReconnect && !invalidCredentials) { // reconnect - Task.Delay(5000).ContinueWith((x) => Reconnect()); + Task.Delay((int)ReconnectInterval).ContinueWith((x) => Reconnect()); } else { diff --git a/Esiur/Net/IIP/DistributedConnectionProtocol.cs b/Esiur/Net/IIP/DistributedConnectionProtocol.cs index 4e3642d..93fc3cc 100644 --- a/Esiur/Net/IIP/DistributedConnectionProtocol.cs +++ b/Esiur/Net/IIP/DistributedConnectionProtocol.cs @@ -708,13 +708,11 @@ partial class DistributedConnection { if (res != null) { - //var r = res as IResource; - //r.Instance.ResourceEventOccurred -= Instance_EventOccurred; - //r.Instance.CustomResourceEventOccurred -= Instance_CustomEventOccurred; - //r.Instance.ResourceModified -= Instance_PropertyModified; - //r.Instance.ResourceDestroyed -= Instance_ResourceDestroyed; - + + // unsubscribe Unsubscribe(res); + // remove from cache + cache.Remove(res); // remove from attached resources //attachedResources.Remove(res); diff --git a/Esiur/Net/IIP/DistributedServer.cs b/Esiur/Net/IIP/DistributedServer.cs index cbb977d..ae8276b 100644 --- a/Esiur/Net/IIP/DistributedServer.cs +++ b/Esiur/Net/IIP/DistributedServer.cs @@ -149,19 +149,16 @@ public class DistributedServer : NetworkServer, IResource // base.AddConnection(connection); //} - bool one = false; protected override void ClientConnected(DistributedConnection connection) { - // if (!one) - //connection.OnReady += ConnectionReadyEventReceiver; - Task.Delay(10000).ContinueWith((x) => - { - Console.WriteLine("By bye"); - // Remove me from here - connection.Close(); - one = true; - }); + //Task.Delay(10000).ContinueWith((x) => + //{ + // Console.WriteLine("By bye"); + // // Remove me from here + // connection.Close(); + // one = true; + //}); } diff --git a/Esiur/TODO b/Esiur/TODO index bcabc5e..7fe066e 100644 --- a/Esiur/TODO +++ b/Esiur/TODO @@ -1,4 +1,2 @@ -1- Change branch to main -2- Generic Records/Resources -3- Static functions calls -4- Scan assembly for child classes \ No newline at end of file +1- Scan assembly for child classes +2- Auto reconnect id \ No newline at end of file