2014-11-27 25 views
5

clienID öğesinin belirtilmesi, yalnızca MqttAndroidClient sınıfındaki bir özelliktir ve IMqttClient ve IMqttAsynchClient sınıflarını kullanırken belirtilemez.İstemci kimliği ne için gereklidir?

Bir istemciyi benzersiz bir ID ile bağlamanın gerçek amacı nedir?

cevap

7

Her MQTT Bağlantısının benzersiz bir istemci kimliği olması gerekir. Bu benzersiz istemci kimliğiyle, bir müşteri yeniden bağlandığında ve istemci için potansiyel olarak yarı açık bir TCP bağlantısını kapatabildiğinde aracı tanıyabilir. Ayrıca, MQTT aracıları MQTT istemcileri için sürekli bir oturum yapabilirler, eğer bunu yapmak isterlerse (cleanSession = false CONNECT'te). Aynı müşteri kimliğiyle bağlantıyı koparıp tekrar bağlarsanız, kaçırmış olabileceğiniz abonelikleriniz için tüm iletileri alırsınız ve aracı, bu müşteri kimliği için eski aboneliklerinizi bilir.

+0

Bilgilendirme için teşekkür ederiz. ancak IMqqttClient sınıfı r IMqtttAsynchClient sınıfını kullanmaya çalıştığımda, clientID'yi veya IP'yi belirtmenin hiçbir yolu yoktur. Bir kişinin kimliğini ve IP'yi nasıl belirleyebileceğini görmek için söz konusu sınıfların herhangi bir örneği için interneti okudum ama böyle bir örnek yok. herhangi bir rehberlik veya tavsiye? – rmaik

+0

Arabirimlerdir ve örneklenemezler. –

+0

@AlessandroDaRugna belki bu sizin için bir arayış olabilir :) http://stackoverflow.com/questions/27174271/what-is-the-clientid-needed-for – rmaik

İlgili konular