Inheritance: System.Exception
コード例 #1
0
        public Channel Subscribe(string channelName)
        {
            if (_connection.State != ConnectionState.Connected)
            {
                var pusherException = new PusherException("You must wait for Pusher to connect before you can subscribe to a channel", ErrorCodes.NotConnected);
                RaiseError(pusherException);
                throw pusherException;
            }

            if (Channels.ContainsKey(channelName))
            {
                Trace.TraceEvent(TraceEventType.Warning, 0, "Channel '" + channelName + "' is already subscribed to. Subscription event has been ignored.");
                return(Channels[channelName]);
            }

            // If private or presence channel, check that auth endpoint has been set
            var chanType = ChannelTypes.Public;

            if (channelName.ToLower().StartsWith("private-"))
            {
                chanType = ChannelTypes.Private;
            }
            else if (channelName.ToLower().StartsWith("presence-"))
            {
                chanType = ChannelTypes.Presence;
            }

            return(SubscribeToChannel(chanType, channelName));
        }
コード例 #2
0
 private void InvokeErrorHandler(PusherException error)
 {
     try
     {
         if (Error != null)
         {
             if (!error.EmittedToErrorHandler)
             {
                 try
                 {
                     Error.Invoke(this, error);
                 }
                 catch (Exception e)
                 {
                     if (Options.TraceLogger != null)
                     {
                         Options.TraceLogger.TraceError($"Error caught invoking delegate Pusher.Error:{Environment.NewLine}{e}");
                     }
                 }
             }
         }
     }
     finally
     {
         error.EmittedToErrorHandler = true;
     }
 }
コード例 #3
0
 private void RaiseError(PusherException error)
 {
     _currentError = error;
     _pusher.ErrorOccured(error);
     if (_connectionSemaphore != null)
     {
         _connectionSemaphore.Release();
     }
 }
コード例 #4
0
ファイル: Pusher.cs プロジェクト: nea/pusher-websocket-dotnet
 private void AuthEndpointCheck()
 {
     if (_options.Authorizer == null)
     {
         var pusherException = new PusherException("You must set a ChannelAuthorizer property to use private or presence channels", ErrorCodes.ChannelAuthorizerNotSet);
         RaiseError(pusherException);
         throw pusherException;
     }
 }
コード例 #5
0
        private void RaiseError(PusherException error)
        {
            var handler = _errorEvent;

            if (handler != null)
            {
                handler(this, error);
            }
        }
コード例 #6
0
ファイル: Pusher.cs プロジェクト: nea/pusher-websocket-dotnet
        private void RaiseError(PusherException error)
        {
            var handler = Error;

            if (handler != null)
            {
                handler(this, error);
            }
            //else
            //    Pusher.Trace.TraceEvent(TraceEventType.Error, 0, error.ToString());
        }
コード例 #7
0
        private void HandleException(Exception e, string eventName, TData data)
        {
            if (ErrorHandler != null)
            {
                PusherException errorToHandle = e as PusherException;
                if (errorToHandle == null)
                {
                    errorToHandle = new EventEmitterActionException <TData>(ErrorCodes.EventEmitterActionError, eventName, data, e);
                }

                ErrorHandler.Invoke(errorToHandle);
            }
        }
コード例 #8
0
        private void RaiseError(PusherException error)
        {
            // if a handler is registerd, use it, otherwise throw
            var handler = Error;

            if (handler != null)
            {
                handler(this, error);
            }
            else
            {
                throw error;
            }
        }
コード例 #9
0
        private void RaiseError(PusherException error)
        {
            // if a handler is registerd, use it, otherwise just trace. No code can catch exception here if thrown.
            var handler = Error;

            if (handler != null)
            {
                handler(this, error);
            }
            else
            {
                Pusher.Trace.TraceEvent(TraceEventType.Error, 0, error.ToString());
            }
        }
コード例 #10
0
 private void RaiseError(PusherException error, bool runAsNewTask = true)
 {
     if (Error != null)
     {
         if (!error.EmittedToErrorHandler)
         {
             if (runAsNewTask)
             {
                 Task.Run(() =>
                 {
                     InvokeErrorHandler(error);
                 });
             }
             else
             {
                 InvokeErrorHandler(error);
             }
         }
     }
     else
     {
         error.EmittedToErrorHandler = true;
     }
 }
コード例 #11
0
 private void RaiseError(PusherException error)
 {
     // if a handler is registerd, use it, otherwise throw
     var handler = Error;
     if (handler != null) handler(this, error);
     else throw error;
 }
コード例 #12
0
ファイル: Pusher.cs プロジェクト: nea/pusher-websocket-dotnet
 void IPusher.ErrorOccured(PusherException pusherException)
 {
     RaiseError(pusherException);
 }
コード例 #13
0
 private void RaiseError(PusherException error)
 {
     var handler = _errorEvent;
     if (handler != null) handler(this, error);
 }
コード例 #14
0
 void ITriggerChannels.RaiseChannelError(PusherException error)
 {
     RaiseError(error, runAsNewTask: false);
 }
コード例 #15
0
 private void AuthEndpointCheck()
 {
     if (_options.Authorizer == null)
     {
         var pusherException = new PusherException("You must set a ChannelAuthorizer property to use private or presence channels", ErrorCodes.ChannelAuthorizerNotSet);
         RaiseError(pusherException);
         throw pusherException;
     }
 }
コード例 #16
0
ファイル: VpdbClient.cs プロジェクト: freezy/vpdb-agent
 private void PusherError(object sender, PusherException error)
 {
     // todo handle
     ((Subject<Channel>)UserChannel).OnNext(null);
     _logger.Error(error, "Pusher error: {0}", error.Message);
 }
コード例 #17
0
 static void _pusher_Error(object sender, PusherException error)
 {
     Console.WriteLine("Pusher Error: " + error.ToString());
 }
コード例 #18
0
 private void RaiseError(PusherException error)
 {
     _pusher.ErrorOccured(error);
 }
コード例 #19
0
ファイル: StampSocket.cs プロジェクト: Rannasha/CoinTrader
 private void Error(object sender, PusherException e)
 {
 }