Ho un'applicazione di chat ios che utilizza openfire, quello che devo fare è inviare notifica push quando il messaggio (1) non può essere consegnato per nessun motivo, (2) l'app è in stato sospeso, ovvero non può generare una notifica autonomamente.invia notifica push a ios per la chat all'utente offline, openfire xmpp
Ho letto la maggior parte delle domande/suggerimenti relativi su questo su StackOverflow e altrove e ho concluso poche soluzioni al mio problema. Non sono uno sviluppatore ios e non so nulla di openfire o xmpp prima di un paio di giorni, quindi temo che la mia comprensione delle cose potrebbe non essere completa e le mie soluzioni potrebbero essere imperfette.
Gentilmente confermare la mia comprensione e suggerire se mi manca qualcosa o se c'è un approccio migliore. Si prega inoltre di suggerire quanto sarà complesso implementare una particolare soluzione elencata di seguito.
sfida è quello di identificare quando è richiesta la spinta e dove viene avviato il processo, così
1) un modo è utilizzare l'implementazione XEP-0184 di xmpp per verificare se il messaggio viene consegnato. per fare questo dovremmo avere qualche contrassegno consegnato con messaggio nel database ios, che viene aggiornato quando la risposta consegnata viene ricevuta dall'altra parte. Quindi è necessario controllare questo flag dopo un po 'e se lo stato di consegna è falso, avviare il processo push con il messaggio. Sembra essere una soluzione complicata (attendere la risposta .. controllare la bandiera con un certo intervallo di tempo .. non molto impressionante)
2) Un approccio più diretto è quello di fare qualcosa in openfire, quando openfire non può consegnare un messaggio lo memorizza nella tabella offline, possiamo fare alcune intercettazioni su quella parte e avviare il processo push con il messaggio. Questo sembra essere l'approccio corretto, ma ho davvero paura di ottenere tutto questo all'interno di openfire e cambiare qualcosa (Potrebbe essere facile anche, qualcuno che ha lavorato un po 'con il fuoco aperto può dire?)
3) Questo è il mio ultimo resort, e questa non è una soluzione .. ma se non riesco a farlo correttamente entro i tempi previsti (che è una settimana da ora), abbiamo in programma di inviare una notifica push per tutti i messaggi. oppenfire prenderà in considerazione la normale chat mentre un push verrà inviato dal nostro server per ogni messaggio ma quando l'app è in primo piano, facciamo qualcosa per gestire i messaggi push extra che non devono essere mostrati, altrimenti viene ricevuto un push ogni volta che c'è un Messaggio. Cosa ne pensate voi di questo modo temporaneo (dovremo ovviamente cambiarlo il più presto possibile), è fattibile (o mi manca qualcosa anche qui).
P.S. Qualcuno può dire come Whatsapp e altre popolari app gestiscono questo?
Molte grazie per il vostro aiuto.
grazie per la menzione del protocollo xep-0184! – VinceFR
Segnala questo collegamento http://stackoverflow.com/questions/30253948/how-to-send-push-notification-to-offline-users-of-xmpp/30530294#30530294 – Parthpatel1105