2015-08-19 14 views
6

Sto lavorando al progetto IoT e dovrei mantenere il dispositivo incorporato connesso a un servizio web. Quindi, che è meglio, richiedendo il webservice ogni 1 o 2 secondi, o aprendo un socket con il server per garantire le operazioni in tempo reale.Come i dispositivi IoT si connettono ai server

Prendere in considerazione che lavorare con i socket potrebbe richiedere la scrittura di molti mazzi di codici, poiché per esempio non ci sono framework per socket su ARM.

Grazie

+0

possibile duplicato di [È meglio riutilizzare le connessioni o rinnovarle per l'invio frequente di dati?] (Http://stackoverflow.com/questions/30244753/is-it-better-to-reuse-connections-or- rinnovare-per-inviare-dati-frequentemente) o [che è un overhead più grande: creare ogni volta un nuovo socket o mantenere un singolo socket per il trasferimento dei dati] (http://stackoverflow.com/q/28541889/3081018) . –

+0

Sì, grazie, ma gli stati sono completamente diversi, il duplicato parla di un intervallo di 20 secondi e parlo di un intervallo di 1 secondo. –

+0

Le risposte parlano di come la scelta migliore dipende dall'utilizzo delle risorse su client e server e latenza. Non sono specifici per 1,2 secondi contro 30 secondi. In poche parole: se ne hai bisogno più velocemente usa una singola connessione ma al costo di più risorse richieste sul server. –

risposta

2

mio team ed io stanno attualmente lavorando su una piattaforma IOT, qui sono i miei suggerimenti:

  1. Se il prodotto riporta solo i dati o lo stato periodicamente, utilizzando un servizio web per ricevere i dati funzionerà benissimo, e è molto facile da implementare.
  2. Se è necessario inviare operazioni in tempo reale dal server al dispositivo, utilizzare una connessione tcp lunga è una scelta migliore. Ci sono alcuni buoni protocolli per aiutarti a implementare questo, come MQTT.
  3. Per il secondo caso sopra, la richiesta di un servizio Web per ricevere operazioni in tempo reale funzionerà, ma non è sicuramente una buona idea. Aumenterà il carico del tuo server e il consumo energetico del tuo dispositivo.

Dopo tutto, è necessario fare la vostra scelta sui requisiti del vostro prodotto.

2

È possibile utilizzare il protocollo MQTT, la sua biblioteca è disponibile per embedded c così come per Arduino. Inoltre, è possibile scegliere Rest/Coap con nodejs poiché la richiesta sarà in attesa finché il nodo non darà la risposta In entrambi gli scenari, la comunicazione in tempo reale può essere raggiunta senza socket e tempo di aggiornamento.

+1

Sembra buono, fammi controllare per verificare la tua risposta –

+0

@Samrat, vuoi dire riposare/coap in nodejs su un client? Mostafa, hai verificato se questa risposta funziona bene per il tuo dispositivo incorporato? – minghua

+0

sì, solo se si utilizza un po 'più tempo nel client se si utilizza il resto o il coap, allora creerà una linea di comunicazione asincrona, e con questo si dovranno gestire anche le interruzioni di rete. direi, usa mqtt, è meglio uno –