Exemplo n.º 1
0
 private void ConnectToHub()
 {
     try
     {
         hubClient = hubFactory.CreateConnection();
         hubClient.MessageArrived     += ClientInvokation;
         hubClient.OperationalChanged += ConnectedChanges;
         if (initCalled)
         {
             hubClient.Initialize();
         }
     }
     catch (Exception ex)
     {
         LogEnvironment.LogEvent($"Error connecting to hub: {ex.OutlineException()}", LogSeverity.Warning);
         throw;
     }
     finally
     {
         if (!hubClient.Operational && initCalled)
         {
             reconnector.Change(reconnectTimeout, reconnectTimeout);
         }
         else
         {
             reconnector.Change(Timeout.Infinite, Timeout.Infinite);
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// Re-Initializes the client connection
        /// </summary>
        private void ReConnectClient()
        {
            connection = connector.CreateConnection();
            if (useEvents)
            {
                connection.MessageArrived     += ProcessMessage;
                connection.OperationalChanged += ConnectivityChanged;
            }

            if (initCalled)
            {
                connection.Initialize();
                connected = connection.Operational;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Tests the connection to the given target-proxy object
        /// </summary>
        /// <returns>a value indicating whether the connection is OK</returns>
        protected override bool Test()
        {
            if (connected || !initCalled)
            {
                if (!connection.Initialized)
                {
                    try
                    {
                        connection.Initialize();
                        if (isBidirectional != IsBidirectional)
                        {
                            throw new Exception("Failed to Register return-channel. Check permissions on server.");
                        }
                    }
                    finally
                    {
                        initCalled = true;
                    }
                }

                if (!connection.Operational)
                {
                    ConnectivityChanged(null, null);
                    return(connected = false);
                }

                return(connected = connection.DiscoverService(targetService));
            }
            else
            {
                try
                {
                    ReConnectClient();
                    //return Test();
                }
                catch
                {
                    connection?.Dispose();
                    connection = null;
                    connected  = false;
                }
            }

            return(false);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes this object to act as a ipc service
 /// </summary>
 protected override void ServiceInit()
 {
     if (!initCalled)
     {
         try
         {
             hubClient.Initialize();
             if (!hubClient.Operational)
             {
                 reconnector.Change(reconnectTimeout, reconnectTimeout);
             }
         }
         catch (Exception ex)
         {
             LogEnvironment.LogEvent($"Error connecting to hub: {ex.OutlineException()}", LogSeverity.Warning);
             reconnector.Change(reconnectTimeout, reconnectTimeout);
         }
         finally
         {
             initCalled = true;
         }
     }
 }