2014-11-27 4 views
5

clienID을 지정하는 것은 MqttAndroidClient 클래스의 기능 일 뿐이며 클래스 IMqttClientIMqttAsynchClient을 사용할 때 지정할 수 없습니다.clientID가 필요한 이유는 무엇입니까?

ID 고유 한 클라이언트를 연결하는 실제 목적은 무엇입니까?

답변

7

모든 MQTT 연결에는 고유 한 클라이언트 ID가 필요합니다. 이 고유 한 클라이언트 ID를 사용하면 브로커는 클라이언트가 다시 연결될 때이를 인식 할 수 있으며 클라이언트에 대해 이전에 열려있는 TCP 연결을 닫을 수 있습니다. 또한 MQTT 브로커는 원하는 경우 MQTT 클라이언트에 대해 지속적 세션을 보유 할 수 있습니다 (CONNECT의 경우 cleanSession = false). 동일한 클라이언트 ID의 연결을 끊었다가 다시 연결하면 부재중 일 수있는 가입에 대한 모든 메시지를 받게되고 브로커는 해당 클라이언트 ID에 대한 이전 가입을 알게됩니다.

+0

정보를 제공해 주셔서 감사합니다. 하지만 내가 IMqqttClient 클래스 IMqtttAsynchClient 클래스를 사용하려고하면, 그 clientID 또는 IP를 지정하는 입증 된 방법은 없습니다. 위의 클래스에 대한 예제를 통해 인터넷에 접속하여 ID와 IP를 어떻게 지정할 수 있는지 보여 주지만 예제는 없습니다. 어떤 안내 또는 조언? – rmaik

+0

이들은 인터페이스이므로 인스턴스화 할 수 없습니다. –

+0

@AlessandroDaRugna 아마도 이것은 당신을위한 questin 수 있습니다 :) http://stackoverflow.com/questions/27174271/what-is-the-clientid-needed-for – rmaik