/// <summary> /// Handles a failed websocket request /// </summary> /// <param name="client">The websocket client which sent the request</param> /// <param name="args">Arguments associated with failure</param> private static void HandleFailedRequest(IWebSocketsClient client, RequestFailureEventArgs args) { LogUtility.LogMessage(String.Format("Request Failure (reason: {0})", Enum.GetName(typeof(RequestFailureReason), args.FailureReason))); bool tryReconnect = false; string message = null; switch (args.FailureReason) { case RequestFailureReason.Auth: tryReconnect = false; message = "authentication problem"; NotificationUtility.PostNotification(NotificationType.AuthFailure); break; case RequestFailureReason.Timeout: tryReconnect = ReconnectIsAllowed(); message = "timeout"; break; case RequestFailureReason.ServerDown: tryReconnect = ReconnectIsAllowed(); message = "server down"; break; case RequestFailureReason.Network: tryReconnect = ReconnectIsAllowed(); message = "network issue"; break; case RequestFailureReason.ServerRequestedReconnect: tryReconnect = ReconnectIsAllowed(); message = "server requested reconnect"; break; case RequestFailureReason.Error: break; } if (tryReconnect) { SetState(ConnectionState.Disconnected, message); ReconnectProcess.Begin(args.ForegroundAction, args.OnResume, args.Request, args.FailureReason); } }
private static void OnRequestFailed(object sender, RequestFailureEventArgs e) { HandleFailedRequest(sender as IWebSocketsClient, e); }
/*protected virtual*/ void OnRequestFailure(RequestFailureEventArgs e) { RequestEventHandler<RequestFailureEventArgs> handler = RequestFailure; if (handler != null) { handler(this, client, e); } }