2014-11-27 16 views
5

Poiché la specifica di clienID è solo una funzione della classe MqttAndroidClient e non può essere specificata quando si utilizzano le classi IMqttClient e IMqttAsynchClient.A cosa serve il clientID?

qual è il vero scopo di connettere un client con un ID univoco?

risposta

7

Ogni connessione MQTT richiede un ID client univoco. Con questo ID client univoco, il broker è in grado di riconoscere quando un client si riconnette e può chiudere una vecchia connessione TCP potenzialmente semiaperta per il client. Inoltre, il broker MQTT può contenere una sessione persistente per i client MQTT se desiderano farlo (cleanSession = false su CONNECT). Se si disconnette e si riconnette con lo stesso ID client, si riceveranno tutti i messaggi relativi agli abbonamenti che potrebbero essersi persi e il broker conoscerà i propri vecchi abbonamenti per tale ID cliente.

+0

Grazie mille per l'informazione. ma quando provo a usare la classe IMqtttAsynchClient di classe IMqqttClient, non c'è modo di provarlo per specificare clientID o IP. Ho cecked Internet per qualsiasi esempio per le classi di cui sopra per vedere come si può specificare ID e IP, ma non ci sono tali esempi. qualche consiglio o consiglio? – rmaik

+0

Sono interfacce e non possono essere istanziate. –

+0

@AlessandroDaRugna forse questa potrebbe essere una ricerca per te :) http://stackoverflow.com/questions/27174271/what-is-the-clientid-needed-for – rmaik