Italian [risolto] [lascio manuale] [b4a] come chiedere senza usare un timer di aggiornare la lista record?

ivanomonti

Expert
Licensed User
Longtime User
ciao ragazzi come già detto e ridetto e triturato i maroni sono arrivato alla conclusione del primo step, ho eliminato la connessione diretta e vado di http con okhttp2 e tutto fila liscio usando il server remoto, ora ho però il problema di avvisare il client che ci sono nuove risposte e vorrei farlo senza usare il timer che ruba un sacco di risorsa, avete idea di come potrei procedere?

Io non ne ho, ma di sicuro esiste la soluzione, magari qui già l'avete trovata!

Grazie per le risposte.
 

LucaMs

Expert
Licensed User
Longtime User
ciao ragazzi come già detto e ridetto e triturato i maroni sono arrivato alla conclusione del primo step, ho eliminato la connessione diretta e vado di http con okhttp2 e tutto fila liscio usando il server remoto, ora ho però il problema di avvisare il client che ci sono nuove risposte e vorrei farlo senza usare il timer che ruba un sacco di risorsa, avete idea di come potrei procedere?

Io non ne ho, ma di sicuro esiste la soluzione, magari qui già l'avete trovata!

Grazie per le risposte.
Perché non mi hai dato retta!
Un websocket server, questo avresti dovuto sviluppare.
Prendendo uno degli esempi pubblicati da Erel.
 

ivanomonti

Expert
Licensed User
Longtime User
Perché non mi hai dato retta!
Un websocket server, questo avresti dovuto sviluppare.
Prendendo uno degli esempi pubblicati da Erel.
perchè volevo vedere ogni aspetto, ti do ragione in parte in altra mi sono preso la bega di capire come fare il mio progetto con le armi che conosco, il websocket non lo conosco e non ho idea, ma al di fuori di questo, che posso fare con il websocket?

il software Android lo fatto semplice, legge le risposte e scrive domande con due semplici comandi (Select/Insert) e tutto va bene il server desktop lavora bene e non ho problemi, mi manca solo l'aggiornamento delle risposte su android, che se non uso il timer non saprei come muovermi.
 

ivanomonti

Expert
Licensed User
Longtime User
Altra cosa che chiarisco, android o Ios scrivono solo le domande, il mio risponditore darà le risposte ma le scrive nel db e non altro... non voglio che android o ios vadano diretti da quello che potrebbe essere AI qualunque sia, ma che sia il mio server a fare il lavoro sporco.
 

udg

Expert
Licensed User
Longtime User
Un sistema potrebbe essere l'utilizzo delle notifiche push (da server verso i client).
Hai sostanzialmente due possibilità: MQTT e FCM (Firebase Cloud Messaging)
La seconda funziona anche a telefono spento (ovvero ci pensa Google a dire al tuo telefono che c'è una notifica in attesa), mentre la prima, se il telefono è spento, dopo i suoi x tentativi, lascia cadere la cosa.
In un caso e nell'altro, sarebbe ottima cosa far sì che all'avvio dell'app client, questa interroghi il server per sapere se ci sono mesasggi in attesa. Un po' come fanno i programmi di chat (che quindi non si limitano alle sole notifiche).
Sia MQTT che FCM consentono di inviare messaggi ad un unico destinatario, ma puoi sempre inviare gli stessi msg a tutti e poi solo il destinatario (nel tuo caso il device che ha inviato la domanda) mostrerà la notifica (o direttamente la risposta se è in foreground).
 

ivanomonti

Expert
Licensed User
Longtime User
Un sistema potrebbe essere l'utilizzo delle notifiche push (da server verso i client).
Hai sostanzialmente due possibilità: MQTT e FCM (Firebase Cloud Messaging)
La seconda funziona anche a telefono spento (ovvero ci pensa Google a dire al tuo telefono che c'è una notifica in attesa), mentre la prima, se il telefono è spento, dopo i suoi x tentativi, lascia cadere la cosa.
In un caso e nell'altro, sarebbe ottima cosa far sì che all'avvio dell'app client, questa interroghi il server per sapere se ci sono mesasggi in attesa. Un po' come fanno i programmi di chat (che quindi non si limitano alle sole notifiche).
Sia MQTT che FCM consentono di inviare messaggi ad un unico destinatario, ma puoi sempre inviare gli stessi msg a tutti e poi solo il destinatario (nel tuo caso il device che ha inviato la domanda) mostrerà la notifica (o direttamente la risposta se è in foreground).
sarebbe forse opzione migliore la gestione push FCM che non ho mai fatto, ora e capire come gestire la cosa

ho fatto in modo che client e risponditore siano due mondi diversi ma che lavorano in sinergia, in mezzo li tiene legato un database dove il risponditore prende a carico le domande e le risponde aggiornando il record stesso quindi il record contiene dei true e false in base allo status

domanda nuova il suo valore e falso
domanda risposta il suo valore e true

ora quando il valore e true il risponditore la ignora e va avanti con il suo lavoro, mentre il client (manualmente) la prende in carico e la pubblica, quel manualmente vorrei farlo diventare automatico, il ciò significa che devo fare un azione di tipo click o avviso il cliente con un FCM o il client lo fa manualmente.

Avevo pensato alla sezione activity.resume che potrebbe essere un idea, l'atra e un timer ma credo sia un enorme spreco di energia del telefono... molto indeciso.
 
Top