wialon / gmqtt

Python MQTT v5.0 async client
MIT License
396 stars 52 forks source link

How to increase the max in IdGenerator from client? #123

Open Shraddha-gami-source opened 3 years ago

Shraddha-gami-source commented 3 years ago

On sending messages/ack it is showing QoS query is full Is there any way to increase the max in IdGenerator from a client itself?

Attaching the stack trace for more info. File "/usr/local/lib/python3.7/dist-packages/gmqtt/client.py", line 225, in subscribe return self._connection.subscribe(subscriptions, kwargs) File "/usr/local/lib/python3.7/dist-packages/gmqtt/mqtt/connection.py", line 71, in subscribe return self._protocol.send_subscribe_packet(subscription, kwargs) File "/usr/local/lib/python3.7/dist-packages/gmqtt/mqtt/protocol.py", line 94, in send_subscribe_packet mid, pkg = package.SubscribePacket.build_package(subscriptions, self, **kwargs) File "/usr/local/lib/python3.7/dist-packages/gmqtt/mqtt/package.py", line 158, in build_package local_mid = cls.id_generator.next_id() File "/usr/local/lib/python3.7/dist-packages/gmqtt/mqtt/utils.py", line 55, in next_id id = self._mid_generate() File "/usr/local/lib/python3.7/dist-packages/gmqtt/mqtt/utils.py", line 31, in _mid_generate raise OverflowError("All ids has already used. May be your QoS query is full.")

Mixser commented 3 years ago

Hi @Shraddha-gami-source

We can't increase a number of ids, because this is a limitation of MQTT protocol. Why do you have so many pending messages?