TsgcWSAPIServer_WebPush › Ereignisse › OnWebPushSendNotificationException
Wird ausgelöst, wenn beim POSTen einer Benachrichtigung an den Push-Dienst eine Exception ausgelöst wird (typische Ursachen: 400 Bad Request, 404/410 Gone für abgelaufene Endpunkte, TLS- oder Netzwerkfehler).
property OnWebPushSendNotificationException: TsgcWSWebPushSendNotificationException;
// TsgcWSWebPushSendNotificationException = procedure(Sender: TObject; aSubscription: TsgcHTTP_API_WebPush_PushSubscription; E: Exception; var Remove: Boolean) of object
—
Wird sowohl von SendNotification als auch von der Pro-Abonnent-Schleife innerhalb von BroadcastNotification ausgelöst. Der var-Parameter Remove ist standardmäßig True: Wenn Sie ihn unverändert lassen, wird das fehlerhafte Abonnement aus der internen Liste entfernt (das korrekte Verhalten bei dauerhaften Fehlern wie HTTP 410 Gone). Setzen Sie ihn auf False, um das Abonnement beizubehalten und später erneut zu versuchen, zum Beispiel wenn der Fehler vorübergehend ist (Netzwerk-Timeout, 5xx vom Push-Dienst). Verwenden Sie E für Protokollierung und Diagnose.
procedure TForm1.sgcWSAPIServer_WebPush1WebPushSendNotificationException(
Sender: TObject; aSubscription: TsgcHTTP_API_WebPush_PushSubscription;
E: Exception; var Remove: Boolean);
begin
LogError(aSubscription.Endpoint, E.Message);
// keep subscription on transient errors, remove it on permanent ones
Remove := Pos('410', E.Message) > 0;
end;