Explorar el Código

Attempt to fix socket problems

Kenric Nugteren hace 1 año
padre
commit
90e7e19933
Se han modificado 1 ficheros con 15 adiciones y 15 borrados
  1. 15 15
      InABox.Client.RPC/Transports/Socket/RPCClientSocketTransport.cs

+ 15 - 15
InABox.Client.RPC/Transports/Socket/RPCClientSocketTransport.cs

@@ -18,7 +18,7 @@ namespace InABox.Rpc
         private ManualResetEventSlim openEvent = new ManualResetEventSlim();
 
         private string? _host;
-        private bool _connected = false;
+        //private bool _connected = false;
         
         private string[] _urls;
 
@@ -177,7 +177,7 @@ namespace InABox.Rpc
             }
             catch (Exception e)
             {
-                Console.WriteLine(e);
+                Logger.Send(LogType.Error, ClientFactory.UserID, $"Error in CreateSocket(): {e.Message}");
                 throw;
             }
             
@@ -186,13 +186,8 @@ namespace InABox.Rpc
 
         private void Client_Closed(object sender, EventArgs e)
         {
-            var wasConnected = _connected;
-            _connected = false;
             openEvent.Set();
-            if (wasConnected)
-            {
-                DoClose(RpcTransportCloseEventType.Closed);
-            }
+            DoClose(RpcTransportCloseEventType.Closed);
         }
 
         private void Client_DataReceived(object sender, DataReceivedEventArgs e)
@@ -214,7 +209,7 @@ namespace InABox.Rpc
 
         private void Client_Opened(object sender, EventArgs e)
         {
-            _connected = true;
+            //_connected = true;
             DoOpen();
             openEvent.Set();
         }
@@ -226,7 +221,7 @@ namespace InABox.Rpc
                 openEvent.Reset();
                 _socket.Open();
                 openEvent.Wait(ct);
-                return _connected;
+                return IsConnected();
             }
             else
             {
@@ -246,8 +241,13 @@ namespace InABox.Rpc
                     else
                     {
                         childCts.Cancel();
+
+                        if(_socket != null)
+                        {
+                            throw new Exception("Socket already exists!");
+                        }
+
                         _socket = result.Result;
-                        _connected = true;
 
                         /*Task.Run(() =>
                         {
@@ -260,17 +260,17 @@ namespace InABox.Rpc
                             }
                         });*/
 
-                        return _connected;
+                        return IsConnected();
                     }
                 }
-                return _connected;
+                return IsConnected();
             }
         }
 
-        public override bool IsConnected() => _connected;//_socket?.State == WebSocketState.Open;
+        public override bool IsConnected() => _socket?.State == WebSocketState.Open;
         public override bool IsSecure() => _socket?.Security.Certificates.Count > 0;
 
-        public override String? ServerName() => _host;
+        public override string? ServerName() => _host;
         
         public override void Disconnect()
         {