当我没有连接客户端时,不会触发连接丢失事件32104MqttClient

问题描述

我有一个Java代码,其中mqtt客户端连接到代理并订阅主题。

我正在尝试使用订阅我的第一个代码的每个客户端的线程,从8个mqtt客户端发布8000条消息,从另一个Java代码为每个客户端发布1000条消息。

我遇到了一些问题:

首先,发布8000条消息大约需要9分钟,而发布1000条消息需要2分钟,每个客户端需要125条消息。我觉得太多了,我该怎么做才能减少这段时间?

这是我在第一个代码中订阅了一条消息之后,我在不同主题中发布了2条消息。订阅这8000条消息并在第一个代码中发布时,我在第一个代码中遇到client is not connected (32104)错误,并且连接丢失事件不会触发,因此无法再次连接。我想知道为什么它不触发,我该怎么做才能触发该事件。

我什至在发布第一个代码之前检查客户端是否已连接,如果未连接,我使用client.reconnect()会给我Client is currently disconnecting (32102)错误。

这是我在第一个代码中为客户端设置的连接选项:

        conOpt.setMaxInflight(10000);
        conOpt.setAutomaticReconnect(true);
        client_pub = new MqttClient(brokerUrl,clientId + "_pub",dataStore);
        client_pub.connect(conOpt);
        client_sub = new MqttClient(brokerUrl,clientId,dataStore);
        client_sub.connect(conOpt);
        client_sub.subscribe(Topic);
        client_sub.setCallback(callback);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)