2015-02-20 18 views
5

Sto sincronizzando gli eventi tra il wearable e lo smartphone. Poiché desidero che i miei eventi vengano ricevuti dal telefono anche se sono scollegati, ho iniziato a utilizzare DataAPI anziché MessageAPI, ma ora la "sincronizzazione" richiede circa 1-2 secondi anziché 0,1-0,5 secondi (tempi percepiti).DataAPI molto più lento di MessageAPI?

Sto trasmettendo in caso di messaggi un percorso di stringa come "/ notification/click" e due byte di dati grezzi. Nel caso di DataAPI, utilizzo il percorso "/ notification/click/1" e un byte di dati non elaborati. Hai visto anche questo comportamento? Conosci un trucco per fissarlo, ad eccezione di utilizzare DataAPI solo se il dispositivo è offline?

Se vuoi vedere qualche codice per favore lascia un commento. Dal momento che quel codice ha un codice molto più basso della piastra, non l'ho aggiunto (ancora).

+0

Lo trovo incredibilmente lento. Cosa hai fatto alla fine? – StuStirling

+0

Oh, ho bisogno di rivedere questa domanda. Quell'enorme Dalay era una specie di insetto che era sparito dopo un po 'di tempo. Tuttavia uso molte operazioni di bit per ridurre la quantità di dati da trasferire. Questo ti aiuta? – rekire

+0

Grazie per la risposta. Il problema che sto avendo è che sto salvando le cose bene alla API di dati sul lato mobile. Mi sto collegando bene alla fine di usura in un WearableListenerService ma solo occasionalmente viene chiamato. – StuStirling

risposta

2

È possibile controllare, se si è connessi, controllando i nodi connessi NodeApi.getConnectedNodes() e visualizzando, se non è vuoto. Ma non penso che questa sia la soluzione migliore.

Se è necessaria una consegna delle informazioni rapida e affidabile, inviare un messaggio e impostare un elemento dati. Aggiungi un identificativo univoco ad entrambi, così puoi ignorare quello che viene consegnato secondo. In questo modo, se sei connesso, riceverai rapidamente un messaggio e successivamente ignorerai l'elemento dati. Se non si è connessi, il messaggio verrà perso, ma l'elemento di dati persisterà e alla fine completerà l'azione. Avrete bisogno di persistere gli identificatori univoci anche se per gestire seguente caso:

  1. messaggio consegnato, azione completata,
  2. riavvio per qualsiasi motivo,
  3. dato finalmente consegnato, deve essere ignorato.
0

sì, nel mio risultato del test, API dei dati è più lenta di un messaggio api (non pochi volta, due volte sopra), si può provare un modo per aumentare la vostra velocità di messaggio. data api ha una funzione che può inviare una risorsa che supporta la dimensione dei dati può essere maggiore di 100 KB, ma api messaggio non può supportare la dimensione dei dati che è maggiore di 100 KB. utilizza un'interfaccia comune del messaggio di invio, controlla la dimensione dei dati che desideri inviare, se è maggiore di 100 KB, utilizza l'asset API dei dati da inviare, in caso contrario utilizza l'API dei messaggi. questo è il mio per accelerare la mia app