649 messaggi dal 13 novembre 2008
Contributi
ciao,
ho implementato prendendo spunto dagli articoli di Morgan un sistema di push notification; la web api contiene modifiche al codice per le sottoscrizioni che vengono registrate in uno storage (endpoint e le 2 chiavi), all'interno della pwa in angular il codice è sostanzialmente lo stesso dell'articolo, con l'aggiunta del button con il metodo per inviare le notifiche direttamente dalla pwa.
Il tutto risiede su Azure; ho effettuato centinaia di test, browser diversi, aggiornato angular CLI all'ultima versione e reistallato @angular/pwa, per l'api ho fatto test col mio codice e con il codice originale (sottoscrizioni registrate in memory), verificato che i service worker fossero attivi, ecc., ecc. ed ho riscontrato sempre questo problema:

su Firefox, in particolare testato con Quantum 64 e Nigthly , non ricevo mai la notifica.. ma non solo, dopo la prova di invio della notifica dall'app angular aperta in Firefox, chiudo il browser e provo con un altro browser e non riesco più a ricevere notifiche.
L'unico modo per rifar funzionare tutto è eliminare tutti i dati dal browser e far ripartire l'api su Azure.

Con Chrome e Edge su Windows non ho problemi, con Chrome su Android va tutto liscio, anche facendo un test simultaneo con Edge su Windows + Chrome su VM Windows + Chrome su Android con user della pwa differenti simultaneamente connessi tutto fila liscio e tutti ricevono le notifiche.

Ho provato i vari debug ma non rilevo errori, solo su AppInsight dopo l'invio da firefox rilevo:
updates.push.services.mozilla.com
Durata:
933 ms
Codice di risposta:
400
Dependency name:
POST /wpush/v2/gAAAAABc.......

l'unica cosa che mi viene in mente da questo comportamento è che in qualche modo il servizio push di mozilla rifiuti il VAPID, l'autenticazione quindi è rifiutata e non posso più mandare notifiche da nessun browser fino al restart dell'api, è possibile?
Qualcuno mi può dare qualche dritta su come risolvere?

Grazie!!
13 messaggi dal 07 marzo 2017
Contributi
Ciao,
Non ho testato l'API sulle versioni da te elencate di Firefox, ho peró effettuato test su Firefox "stable", mentre mi informo a riguardo, potresti darmi un feedback sul funzionamento del tuo sistema API+NG su una delle ultime versioni di Firefox?
Ciao
649 messaggi dal 13 novembre 2008
Contributi
Ciao,
io ho fatto i test sulla più recente di Firefox (64), dato che le notifiche non arrivavano ho provato sulla Nigthly senza risultati; l'ambiente è di produzione su piattaforma Azure.
Nel test verifico che i service workers siano attivi, che avvenga la registrazione, ecc., tutto questo procede correttamente su tutti i browser;
il problema però è che nel momento in cui clicco il button sull'app aperta in firefox per inviare una notifica questa non arriva in nessun altro client, ma soprattutto non ho modo di inviare-ricevere più le notifiche da nessun altro client, browser diversi, pwa, pwa installata su android, tutto il sistema di notifica va in 'stallo' finché non deregistro i service workers e riavvio l'api su Azure.
Mi sta bene che su un client non funzioni, ma non che tutto il sistema si blocchi...
Modificato da teo prome il 28 dicembre 2018 12.00 -
649 messaggi dal 13 novembre 2008
Contributi
Ciao,
ho fatto un ulteriore test stavolta con l'app angular e l'api dell'articolo ed ho lo stesso comportamento dei test precedenti: con Firefox a me proprio non arrivano notifiche e inoltre mi si blocca tutto il sistema di notifica e per farlo ripartire devo riavviare browser e api anche in locale...
Sarei grato a chi abbia voglia di fare qualche test, non riesco a capire dove sia il problema.
Grazie.
649 messaggi dal 13 novembre 2008
Contributi
ciao,
dopo vari test sui codici dell'articolo di Morgan ho rintracciato una eccezione quando eseguo su Firefox, in particolare:
alla prima richiesta di invio notifica all'api, url/notification/sendnotification, si arriva al seguente metodo
      public async Task SendNotificationAsync(PushSubscription subscription, PushMessage message, CancellationToken cancellationToken)
        {
            try
            {
                await _pushClient.RequestPushMessageDeliveryAsync(subscription, message, cancellationToken);
            }
            catch (Exception ex)
            {
                throw;
            }
        }


su Firefox viene sollevata l'eccezione Bad Request e non si ricevono più notifiche anche su tutti i diversi altri client connessi finché non riavvio l'api e sottoscrivo di nuovo i client; il problema potrebbe forse riguardare la libreria Lib.Net.Http.WebPush, Morgan non hai modo di fare una verifica in modo da essere certi del problema ed eventualmente aprire una issue?

update.
forse ho trovato il problema, sembra che a Firefox proprio non piaccia la proprietà Topic del messaggio

var notification = new PushMessage(notificationBody)
{
// Topic = "Message Topic",
Urgency = PushMessageUrgency.Low
//,TimeToLive=25400
};

così sulla Nigthly va, per essere sicuro mi riservo di fare altri test sulla mia app su Azure; rimane da capire perché a seguito dell'errore di cui sopra non vanno più le notifiche sugli altri endpoint diversi e occorra restartare l'api e le sottoscrizioni e come ovviare a questa situazione. Suggerimenti?

Grazie
Modificato da teo prome il 05 gennaio 2019 16.20 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.