3

マシンが solace に接続されており、別のマシンを接続したいのですが、以下のように例外が警告されます。

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(不明なソース)

1 台のマシンを切断すると、別のマシンが接続される可能性があります。デフォルトで接続できるマシンは 1 台だけですか? もしそうなら、多くのマシンが接続できるように設定する方法。

4

1 に答える 1

3

アプリケーションの両方のインスタンスが同じ clientId を使用して接続しようとしている可能性があります。MQTT プロトコルでは、各クライアント接続で一意の clientId を使用する必要があります。

3.1.3.1 クライアント識別子

クライアント識別子 (ClientId) は、サーバーに対してクライアントを識別します。サーバーに接続する各クライアントには、一意の ClientId があります。ClientId は、クライアントとサーバーの間でこの MQTT セッションに関連して保持する状態を識別するために、クライアントとサーバーによって使用されなければなりません [MQTT-3.1.3-2]。

Solace Systemsの実装については、

  • ClientId の長さは最大 128 バイトです
  • ClientIds には、セクション 1.5.3 で許可されている任意の UTF-8 文字を含めることができます
于 2016-05-11T08:44:17.063 に答える