1

此类IMqttClient()允许您创建一个client对象,该对象具有对所有可能发生的事件的回调,例如

@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.

4

2 回答 2

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。没有它是没有用的,因为没有它除了广播之外你什么也做不了。

于 2014-12-09T08:20:06.797 回答
0

Paho 库提供了一个选项,可以在创建 Mqttclient 对象时在构造函数本身中提供客户端 ID:

这是语法:

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

你可以提供那边的客户。

希望这可以帮助你!

于 2014-12-09T07:56:36.393 回答