[mqtt - enhancement] setting up sock read() chunk size
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- embedded-iot, networking
Direzione di ricerca
Inizia individuando l’implementazione MQTT e il percorso di lettura del socket utilizzato per i messaggi in ingresso. Esamina come i blocchi di messaggi vengono forniti al callback e come vengono gestiti i payload di grandi dimensioni. Il lavoro è completato quando viene concordata e implementata una dimensione di lettura limitata senza compromettere la semantica del callback o la consegna completa del payload MQTT.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Im encountering an issue, while transmitting large data (eg. files, ~50kb) over MQTT. The first transmission works flawlessly, but then the ESP has problems to allocate enough heap for further large transmissions in receiving. Blog posts depicts that the problem could be, that the heap is fragmentet after some allocations.
My solution here was to setting up a max chunk size for the read() command, e.g. 1024 byte (multiple of four, to retain the possibility to decode base64 encoded data).
max_size = 1024
left_size = sz
while left_size > 0:
r = min(max_size, left_size)
msg = self.sock.read(r)
left_size -= r
self.cb(topic, msg, (r<max_size))
The additional bool argument for the callback indicates the completeness of the transmission.
Peter Hinch already mentioned to me (in general) a better solution: send multiple short messages or use an device with SPIRAM. Im not entirely sure if this would fit in my situation, where i publish files via MQTT to update these in the filesystem. So at least I wanted to share my results here once again.
Inadvertent i've initially opened this issue under the mqtt repo of @peterhinch (whoops, that was probably a case of mental derangement, im sorry for that). Here was the intended place.
- Lingua principale
- Python
- Stelle
- 2.9k
- Fork
- 1.1k
- Merge medio
- 7g 4h
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di micropython/micropython-lib
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
micropython/micropython-lib#1074 ·
I maintainer di solito rispondono entro 4 giorni
-
needs-info
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
micropython/micropython-lib#943 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
micropython/micropython-lib#931 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
micropython/micropython-lib#795 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
micropython/micropython-lib#762 ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di micropython/micropython-lib
Issue simili
-
good first issue hacktoberfest
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
RogueAlg0/taken#387 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
tool-calling
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
vllm-project/vllm#59838 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
raullenchai/Rapid-MLX#4042 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
transitmatters/mbta-slow-zone-bot#70 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
open-webui/open-webui#31871 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno