Sono un utente e ho già trovato una soluzione a un problema con cui ho faticato per molto tempo. Scrivo per chiedere chiarimenti agli esperti sul motivo per cui questa soluzione funziona.
Vivo in Cina, uso uno smartphone Android e utilizzo app vietate come Whatsapp. Queste app richiedono un VPN per funzionare e risultati ottimi. Ma per molto tempo non ricevevo notifiche push da queste app, nonostante avessi attivato funzioni come avvio automatico e utilizzo in background. Avevo anche i servizi Play e li facevo passare tramite VPN (split tunneling).
A volte, spegnendo il WiFi o accendendolo, o disattivando il VPN, ricevevo improvvisamente notifiche vecchie e non ricevute tutte in una volta. Questo potrebbe essere un indizio. Per Signal, disattivando il VPN, ricevevo una notifica che diceva “scaricando nuovi messaggi”, e quando riattivavo il VPN, vedevo quei messaggi.
Recentemente, sono stato molto deciso a risolvere il problema, e dopo aver letto su FCM, sono inciampato su About FCM messages | Firebase Cloud Messaging che dice:
“Quando il VPN è configurato per permetterci di farlo, bypassiamo il VPN usando una connessione crittografata (sulla rete base WiFi o LTE) per garantire un’esperienza affidabile e a basso consumo… Se il VPN non è configurato per essere bypassato, Firebase Cloud Messaging userà la rete del VPN per connettersi al server.”
Sorpresa, il mio client VPN e molti altri di default permettono il bypass. Quindi ho pensato: cosa succederebbe se configuro il VPN per impedirlo? E funziona! Ora ricevo notifiche push sia per le app che usano il VPN come Whatsapp, sia per le app domestiche cinesi come WeChat.
Ma cosa è successo? Con il problema risolto, voglio proprio capire perché e come. Ho due ipotesi, e spero che gli esperti qui possano aiutarmi a soddisfare la mia curiosità:
-
FCM semplicemente non poteva connettersi a internet perché sceglieva di bypassare il VPN che gli permette di funzionare in Cina.
-
FCM poteva connettersi a internet, ma perché le app vietate passavano tramite VPN mentre FCM bypassava il VPN, qualche mismatch nella comunicazione causava il fallimento delle notifiche push.
AGGIORNAMENTO 2024/2/6: Aggiunta la riga etichettata *.