Browse Source

client diconnect log cleanup

Robert 1 year ago
parent
commit
b1d71d1c59

+ 1 - 1
EVCB_OCPP.WSServer/Jobs/DenyModelCheckJob.cs

@@ -56,7 +56,7 @@ public class DenyModelCheckJob : IJob
                 {
                     //Console.WriteLine(string.Format("Server forced to shut down ChargeBox ({0}: Reason: DenyModelName-{1}", session.ChargeBoxId, denyName));
                     logger.LogInformation(string.Format("Server forced to shut down ChargeBox ({0}: Reason: DenyModelName-{1}", session.ChargeBoxId, denyName));
-                    protalServer.RemoveClient(session);
+                    protalServer.RemoveClient(session, "DenyModel");
                 }
             }
         }

+ 1 - 1
EVCB_OCPP.WSServer/Jobs/HealthCheckTriggerJob.cs

@@ -36,7 +36,7 @@ public class HealthCheckTriggerJob : IJob
         foreach (var session in removeClients)
         {
             logger.LogDebug("Server forced to shut down ChargeBox ({0}: LastActiveTime{1})", session.ChargeBoxId, session.LastActiveTime);
-            protalServer.RemoveClient(session);
+            protalServer.RemoveClient(session, "Inactive");
         }
         return Task.CompletedTask;
     }

+ 14 - 69
EVCB_OCPP.WSServer/ProtalServer.cs

@@ -274,11 +274,11 @@ namespace EVCB_OCPP.WSServer
                 return;
             }
 
-            session.SessionClosed -= AppServer_SessionClosed;
-            session.m_ReceiveData -= ReceivedMessageTimeLimited;
+            //session.SessionClosed -= AppServer_SessionClosed;
+            //session.m_ReceiveData -= ReceivedMessageTimeLimited;
 
-            WriteMachineLog(session, string.Format("CloseReason: {0}", closeReason), "Connection", "");
-            RemoveClient(session);
+            //WriteMachineLog(session, string.Format("CloseReason: {0}", closeReason), "Connection", "");
+            RemoveClient(session, closeReason);
         }
 
         private void TryRemoveDuplicatedSession(WsClientData session)
@@ -286,8 +286,8 @@ namespace EVCB_OCPP.WSServer
             if (clientDic.ContainsKey(session.ChargeBoxId))
             {
                 var oldSession = clientDic[session.ChargeBoxId];
-                WriteMachineLog(oldSession, "Duplicate Logins", "Connection", "");
-                RemoveClient(oldSession);
+                //WriteMachineLog(oldSession, "Duplicate Logins", "Connection", "");
+                RemoveClient(oldSession, "Duplicate Logins");
             }
         }
 
@@ -614,65 +614,6 @@ namespace EVCB_OCPP.WSServer
         //    }
         //}
 
-    
-
-        private async void AppServer_NewSessionConnected(WsClientData session)
-        {
-            logger.LogDebug(string.Format("{0} NewSessionConnected", session.Path));
-
-            try
-            {
-                bool isNotSupported = session.SecWebSocketProtocol.Contains("ocpp1.6") ? false : session.SecWebSocketProtocol.Contains("ocpp2.0") ? false : true;
-                if (isNotSupported)
-                {
-                    //logger.LogDebug(string.Format("ChargeBoxId:{0} SecWebSocketProtocol:{1} NotSupported", session.ChargeBoxId, session.SecWebSocketProtocol));
-                    WriteMachineLog(session, string.Format("SecWebSocketProtocol:{0} NotSupported", session.SecWebSocketProtocol), "Connection", "");
-                    return;
-                }
-                //WsClientData _removeClient = null;
-
-                //var addedClient = clientDic.GetOrAdd(session.ChargeBoxId, session);
-                if (clientDic.ContainsKey(session.ChargeBoxId))
-                {
-                    var oldSession = clientDic[session.ChargeBoxId];
-                    WriteMachineLog(oldSession, "Duplicate Logins", "Connection", "");
-                    //oldSession.Close(CloseReason.ServerShutdown);
-                    RemoveClient(oldSession);
-                }
-                clientDic[session.ChargeBoxId] = session;
-
-                //clientDic.TryGetValue(session.ChargeBoxId, out _removeClient);
-                //if (addedClient != session)
-                //{
-                //    WriteMachineLog(addedClient, "Duplicate Logins", "Connection", "");
-                //    addedClient.Close(CloseReason.ServerShutdown);
-                //    RemoveClient(addedClient);
-                //}
-
-                //clientDic.add.Add(session.ChargeBoxId, session);
-                session.m_ReceiveData += ReceivedMessageTimeLimited;
-                // logger.LogDebug("------------New " + (session == null ? "Oops" : session.ChargeBoxId));
-                WriteMachineLog(session, "NewSessionConnected", "Connection", "");
-
-                using (var db = await maindbContextFactory.CreateDbContextAsync())
-                {
-                    var machine = await db.Machine.Where(x => x.ChargeBoxId == session.ChargeBoxId).FirstOrDefaultAsync();
-                    if (machine != null)
-                    {
-                        machine.ConnectionType = session.UriScheme.Contains("wss") ? 2 : 1;
-                        await db.SaveChangesAsync();
-                    }
-
-                }
-            }
-            catch (Exception ex)
-            {
-                logger.LogError(string.Format("NewSessionConnected Ex: {0}", ex.ToString()));
-            }
-
-
-        }
-
         async private void ReceivedMessageTimeLimited(object sender, string rawdata)
         {
             if (sender is not WsClientData session)
@@ -707,7 +648,7 @@ namespace EVCB_OCPP.WSServer
                 if (session.ResetSecurityProfile)
                 {
                     logger.LogError(string.Format("[{0}] ChargeBoxId:{1} ResetSecurityProfile", DateTime.UtcNow, session.ChargeBoxId));
-                    RemoveClient(session);
+                    RemoveClient(session, "ResetSecurityProfile");
                     return;
                 }
 
@@ -1460,7 +1401,7 @@ namespace EVCB_OCPP.WSServer
 
 
 
-        internal async void RemoveClient(WsClientData session)
+        internal async void RemoveClient(WsClientData session, string reason)
         {
             if (session == null)
             {
@@ -1468,7 +1409,9 @@ namespace EVCB_OCPP.WSServer
             }
 
             if (!string.IsNullOrEmpty(session.MachineId))
-                logger.LogTrace("RemoveClient[" + session.ChargeBoxId + "]");
+                logger.LogTrace("RemoveClient[{0}]:{1}", session.ChargeBoxId, reason);
+
+            WriteMachineLog(session, string.Format("CloseReason: {0}", reason), "Connection", "");
 
             //if (session.Connected)
             //{
@@ -1477,11 +1420,13 @@ namespace EVCB_OCPP.WSServer
             RemoveClientDic(session);
             try
             {
+                session.SessionClosed -= AppServer_SessionClosed;
+                session.m_ReceiveData -= ReceivedMessageTimeLimited;
+
                 if (session.State == WebSocketState.Open)
                 {
                     await session.Close();
                 }
-                session.m_ReceiveData -= ReceivedMessageTimeLimited;
                 // session.Close(CloseReason.ServerShutdown);
 
             }

+ 3 - 3
EVCB_OCPP.WSServer/Service/WsService/WsSession.cs

@@ -135,7 +135,7 @@ public class WsSession
 
     private Task ServerClose()
     {
-        logger.LogInformation("{func}:{Path}", nameof(ServerClose), Path);
+        //logger.LogInformation("{func}:{Path}", nameof(ServerClose), Path);
 
         SessionClosed?.Invoke(this, "ServerShutdown");
         return InternalClose(WebSocketCloseStatus.NormalClosure, "ServerShutdown");
@@ -143,7 +143,7 @@ public class WsSession
 
     private Task GracefulClose(WebSocketCloseStatus closeStatus)
     {
-        logger.LogInformation("{func}:{Path} {value}", nameof(GracefulClose), Path, closeStatus);
+        //logger.LogInformation("{func}:{Path} {value}", nameof(GracefulClose), Path, closeStatus);
 
         SessionClosed?.Invoke(this, closeStatus.ToString());
         return InternalClose(closeStatus, null);
@@ -151,7 +151,7 @@ public class WsSession
 
     private Task BruteClose(string description)
     {
-        logger.LogInformation("{func}:{Path} {value}", nameof(ServerClose), Path, description);
+        //logger.LogInformation("{func}:{Path} {value}", nameof(ServerClose), Path, description);
 
         SessionClosed?.Invoke(this, description);
         return InternalClose(WebSocketCloseStatus.EndpointUnavailable, description);