我正在使用paho mqttv3 java客户端通过创建线程来同时发布大约2000个连接的消息。
一段时间后,它开始给出MqttException是folows:
reason----- 32202
msg--------Too many publishes in progress
cause------ null
虽然我已经设置了Qos 1。
任何人都知道我为什么会遇到这样的例外?
提前致谢。
答案 0 :(得分:5)
我刚刚遇到另一个问题,答案帮助我解决了这个问题。
在连接到代理之前,必须使用setMaxInflight()
对象中的MqttConnectOptions
方法设置更高的MaxInflight值。
默认值设置为10.
原始主题是:Send many publish message: Too many publishes in progress Error
答案 1 :(得分:0)
这可能是服务器或客户端的限制。
如果是服务器限制,您应该查看有关如何调整它以处理更多客户端的特定文档。
如果是客户端限制,则代替MqttClient
试用MqttAsyncClient
(非阻塞)Java客户端。
您可以开始查看三个不同的示例here
示例,它使用在操作完成之前阻止的API
SampleAsyncWait 显示了如何将异步API与服务器一起使用,直到操作完成为止
SampleAsyncCallBack 显示了如何使用异步API,其中事件用于在操作完成时通知应用程序