7

我正在使用 paho mqttv3 java 客户端通过创建线程在 2000 个连接左右同时发布消息。

一段时间后,它开始给出 MqttException 如下:

reason----- 32202
msg--------Too many publishes in progress
cause------ null

虽然我已经设置了 Qos 1。

任何人都知道为什么我会得到这样的例外?

提前致谢。

4

2 回答 2

9

我刚刚遇到另一个问题,该问题的答案帮助我解决了这个问题。

在连接到代理之前,您必须使用对象中的setMaxInflight()方法设置更高的 MaxInflight 值。MqttConnectOptions

默认值设置为 10。

原来的主题是:Send many publish message: Too many publishes in progress Error

于 2016-12-22T14:18:53.830 回答
0

这可能是服务器端或客户端的限制。

如果它是服务器限制,您应该查看有关如何调整它以处理更多客户端的特定文档。

如果是客户端限制,则不要MqttClient尝试MqttAsyncClient(非阻塞)Java 客户端。

您可以在此处开始查看三个不同的示例

使用阻塞直到操作完成的 API 的示例

SampleAsyncWait展示了如何将异步 API 与等待操作完成的等待程序一起使用

SampleAsyncCallBack展示了如何使用异步 API,其中事件用于在操作完成时通知应用程序

于 2015-04-27T11:53:45.083 回答