Пример #1
0
        /// <summary>
        /// Processes the PushTopic message have just arrived.
        /// </summary>
        private static void OnMessageReceived(
            IClientSessionChannel channel, IMessage message, IStreamingAPIClient streamingClient)
        {
            // DEBUG
            _topicLogger.DebugFormat(CultureInfo.InvariantCulture,
                                     "Listener1 - Received PushTopic message for client '{1}', channel: {2}{0}{3}",
                                     Environment.NewLine, streamingClient.Id, channel.Id, JsonConvert.SerializeObject(message, Formatting.Indented));

            Thread.Sleep(3 * 60 * 1000);            // Emulates long-time processing method

            // DEBUG
            _topicLogger.DebugFormat(CultureInfo.InvariantCulture,
                                     "Listener1 - (After 3 minutes) Processed PushTopic message for client '{1}', channel: {2}{0}{3}",
                                     Environment.NewLine, streamingClient.Id, channel.Id, JsonConvert.SerializeObject(message, Formatting.Indented));
        }
Пример #2
0
        /// <summary>
        /// Used to handle all Bayeux client errors.
        /// </summary>
        private static void OnBayeuxClientFailure(
            IClientSessionChannel channel, IMessage message, IStreamingAPIClient that)
        {
            if (null != message && !message.IsSuccessful && null == message.Data)
            {
                // DEBUG
                logger.InfoFormat(CultureInfo.InvariantCulture,
                                  "Failed message for client '{1}', channel: {2}{0}{3}",
                                  Environment.NewLine, that.Id, channel.Id, JsonConvert.SerializeObject(message, Formatting.Indented));

                object val;

                /*string error;
                 * if (message.TryGetValue(Message.ErrorField, out val)
                 *      && null != val
                 *      && (error = val.ToString().Trim()).Length > 0)
                 * {
                 *      // DEBUG
                 *      logger.ErrorFormat("Error during {0}: {1}", message.Channel, error);
                 * }*/

                Exception exception;
                if (message.TryGetValue(Message.ExceptionField, out val) &&
                    null != val &&
                    (exception = val as Exception) != null)
                {
                    // DEBUG
                    logger.Error("Exception during: " + message.Channel, exception);

                    try { that.RefreshOAuthHeader(); }
                    catch (Exception) { }
                }

                /*string failure = null;
                 * if (message.TryGetValue(Message.MessageField, out val)
                 *      && null != val
                 *      && (failure = val.ToString().Trim()).Length > 0)
                 * {
                 *      // DEBUG
                 *      logger.Error("Failed sending message: " + failure);
                 * }*/
            }
        }