Sto utilizzando PHP per connettermi a apn
s per inviare alcune notifiche a più dispositivi, sebbene la domanda sia più concettuale quindi non deve essere specifica per PHP.Notifica push Apple: invio di elevati volumi di messaggi
Invierò a circa 7000 dispositivi (e in crescita) tutti allo stesso tempo. Il mio processo viene eseguito UNA VOLTA al giorno e trasmette a tutti i dispositivi, quindi non sto riaprendo continuamente una connessione.
Attualmente posso facilmente inviare a 2 dispositivi alla volta e i messaggi verranno recapitati correttamente. Tuttavia, quando tento di inviare a tutti i 7000 dispositivi, i messaggi non sembrano recapitare.
La pseudo-logica per il mio codice è:
open connection to apple
loop over device-tokens
write to socket connection per device
end loop
close connection to apple.
ho visto da qualche parte che avrei dovuto eseguire solo una scrittura SINGLE, e costruire un corpo enorme, in altre parole la pseudo-codice sarà simile:
loop over device tokens
create payload aggregating all devices
end loop
open connection to apple
write to socket ONCE with whole payload for 7000 devices
close connection
È difficile da testare perché ovviamente non posso inviare messaggi di prova ai miei 7000 utenti di produzione. Qualcun altro ha avuto un problema simile?
Grazie
hai mai funzionato? Presto scriverò un'app che dovrà affrontare lo stesso problema - trasmessa a migliaia di clienti tramite APNS. –
Ciao Mike. Si l'ho fatto. L'implementazione al momento in cui ho postato questa domanda era nelle fasi abbastanza iniziali. Il problema era che avevo alcuni dispositivi sandbox nella stessa tabella dei dispositivi di produzione. Apple a volte interrompe la connessione se si invia a un dispositivo sandbox device_token mentre si utilizzano i certificati di produzione. Quindi la soluzione più semplice è solo verificare che il numero corretto di byte sia stato scritto sulla connessione e che la connessione non sia caduta dopo ogni evento di scrittura. Se cade devi riaprire la connessione e continuare da dove eri rimasto. in bocca al lupo! – BoomShaka
FYI, è possibile aprire la connessione ed eseguire il numero di scritture desiderato. assicurati di controllare lo stato della connessione dopo ogni scrittura – BoomShaka