/// <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)); }
/// <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); * }*/ } }