2014-11-26 2 views
1

Этот класс IMqttClient() позволяет создать client объект обратного вызова для всех возможных событий произойдет, для примераКласс IMqttClient не предоставляет никакого значения для указания идентификатора клиента?

@Override 
public void subscribe(String arg0) throws MqttException, MqttSecurityException { 

    // TODO Auto-generated method stub 
} 

@Override 
public void setCallback(MqttCallback arg0) { 

    // TODO Auto-generated method stub 
} 

@Override 
public void publish(String arg0, byte[] arg1, int arg2, boolean arg3) throws MqttException, MqttPersistenceException { 

    // TODO Auto-generated method stub 
} 

Но этот класс не позволяет указать ID для каждого клиента. Как это возможно? особенно если вы хотите подключиться к clean session = false?

Кроме того, я проверил класс MqttConnectOptions при создании экземпляра объекта можно установить server URI в качестве опции, а затем вы можете сделать что-то вроде этого client.connect(opts), но нет никакого способа, чтобы указать ID.

ответ

0

Pāho Библиотека предоставляет возможность дать идентификатор клиента в самом конструкторе при создании объекта Mqttclient:

Вот синтаксис:

mClient = new MqttClient(Constant.serverLink, Constant.client_id, null); 

Вы можете предоставить клиенту там.

Надеюсь, это поможет вам!

0

Если вы используете библиотеки из com.ibm.mqtt.IMqttClient, можно указать ClientId при подключении:

mqttClient.connect(clientId, cleanStart, keepAliveSeconds); 

Для получения дополнительной информации, пожалуйста, обратитесь к этой документации: http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html

Если вы используете другую библиотеку, прочитайте документацию. Они определенно позволят вам указать clientId. Было бы совершенно бесполезно не иметь его, поскольку вы не сможете ничего делать, кроме вещания без него.