一台机器连接到安慰,我想要另一台机器连接,但它会警告Exception,如下所示:
org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:28)
org.eclipse.paho.client.mqttv3.internal.ClientState.notifyReceivedAck(ClientState.java:885)
org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:118) java.lang.Thread.run(未知来源)
如果我断开一台机器,另一台机器可以连接。是否只能连接一台机器默认?如果是这样,如何设置它以便许多机器能够连接。
答案 0 :(得分:3)
您的应用程序的两个实例都可能尝试使用相同的clientId进行连接。 MQTT协议要求每个客户端连接使用唯一的clientId。
3.1.3.1客户端标识符
客户端标识符(ClientId)标识服务器的客户端。连接到服务器的每个客户端都有一个唯一的ClientId。客户端和服务器必须使用ClientId来识别它们与客户端和服务器之间的MQTT会话相关的状态[MQTT-3.1.3-2]。
对于Solace Systems的实施,
- ClientIds最长可达128个字节
- ClientIds可以包含第1.5.3节
允许的任何UTF-8字符