From 8a7e5d7e0c29d3b5f89587a127f024abfecaabf3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 26 Dec 2023 19:37:32 +0000 Subject: [PATCH] deploy: db67c14a5a9130b7ccd0b5b333b76b6600736c15 --- .doctrees/connecting-to-the-broker.doctree | Bin 15629 -> 15593 bytes .doctrees/developer-interface.doctree | Bin 184131 -> 184131 bytes .doctrees/environment.pickle | Bin 34985 -> 35077 bytes .doctrees/index.doctree | Bin 21938 -> 22030 bytes _sources/connecting-to-the-broker.md.txt | 2 +- _sources/index.md.txt | 1 + alongside-fastapi-and-co.html | 1 + connecting-to-the-broker.html | 3 ++- developer-interface.html | 1 + genindex.html | 1 + index.html | 1 + introduction.html | 1 + publishing-a-message.html | 1 + reconnection.html | 1 + search.html | 1 + searchindex.js | 2 +- subscribing-to-a-topic.html | 1 + 17 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.doctrees/connecting-to-the-broker.doctree b/.doctrees/connecting-to-the-broker.doctree index daffd55ba777958251657801c81e177438758957..c3b55096d8b031a6ddcada7ccb97ec9a17fe01ab 100644 GIT binary patch delta 1538 zcmd5+O>EnA6z|_|mShcE){eBzrxTX6UembkRN90{BQ0oa3!y@t)O}RUY2DgZW2cGD zHl%8U3T>4V#CYy$(j>G42c}6S5*&sE6CXlIOk5|v#HL9gm2u$$;=ubSX}c8;95`_B zv;BVW_x|tw-m@#O{Cv)K!M65&dfj$!Uvq^tHNhMEJK#dw@_F4XawlhX%_u54(@=Dc zTQHS5X{K8?j6x|T2n&iKo4LfSo)=0vL(xh`(acMlQ4&N&&o3E03NoNa-q9)eP(C0Z>Kf@V1Tx#uQ6T5dqf5$jXwYi%| z{%6HiSN5}nJP*UIV=QU~H$DEe>cJxUSFL5MTeg*3|E``T+h;7<^G^_*^bC%xQA|)C z{SPDt2O{f&F_;vgwOR|MaDQ=A6OgQN`}Z$_%RtIV{fG*wi8=GDiucHRBF(B z1byXwXY}IStZr&XZ(h+%Ln>M7adhP1#wZCbLMWD6>8P^rjp3R8ayYjhgLF?_x7c=R+QY>p-0$(c5 zXsKvCJ`@>8(KQDC=bxu>(`^Abh4);$|I<(#Z3tK097@6q!j^T7>56SkS3FDWJy`X` z&}p;3%qpBBD6IM-Y}inlAl$9%hS5qe5q`Fzw6Z=c{j`2ke^2ivMWk?*6LCOnbFC{2 zB;-9T9``Yh#_=1pIW7+fb0~FugZl)&BUl2yMK0LGeoaFJM#3iH zD|+=Smdb?s4Ne6r@ROnMG2Qp6#%pR?U`vCyB|lb!1J3LJk6FhrfjB zkQ;l#A2Hp-OtWN#+p7fjlEP<5`bhHytjb2ZF=`dv5gFblQqJD1o+1Qw9;YL2yE)&t z@NDFQ^BlpKY%|$+w7F7NCk(02<1}U*7};f3JB<7LE;7RmPJ0I&El|d7uRMhs287*Y zr5}n3a=t2r4aA2lLJ)KlO^Jt0-p3}wN`8~KPvYQ9iu!A2OUC|!r2o56wPxZs&1&Sv zU(z28+#xCvox!&DVbgJoL?8+kNfaE?hUfelP|kTO|EyAn*85gOqDe=FD12NN)JzFUP)1YN@;RQW_})!Ta=od zpO=>k;ZBxumYD42EVX%`^AbkQFU$-K?v6K;PTkwLeP7mFIB$Pxde(b5@1jTJfn5jS>5-WtX%H5LX2Z>G}HtoM^|xc>!8U-L*{d^_3PGm#Bs zM25iRgZ}!H&w5&Ffo#k22Py~KlobPFfs|xr0$HU!EG7BL#ZzjhXk>kvY~b|(Xp*4! zJfKM%yw?CpL2uc~RX#U>76+kNfaE?hUfelY5=TCkHx2A5Jv^Ct zB}MrurBE(wW?o8a#pb=vOBpraGcz!_JKjt>8MIbkBI^T!_bDao9h`T>xP5ZBt1aWZ z$tPX&7~fB}aO-CLu=$7^J0ou;W0o2V1A{kHX=&EG$v52p0;R8cBrtxMZ0?!J1~MW; zVDdqK{mExNEww??#|`8@$&5NkMPf$yGi#fYt~5Dl!78Qa?^cpu;wJ2Txw_DL46pzZsARQsokG zg7MvE-auBM^k(5877!&74Ccv&h%oYl9OKOhc8NE0*1OG)p}tID!PqHaK_K;R^4xHL bUXa30uux~#yXK$a?LWgAxBm=h@+t=aS&5N$ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 2435d644b42f2dd8b6762a6abf44ee227e6c8f3a..99f1ff89fb433e2c417b7a9d2995ee27a93e5520 100644 GIT binary patch delta 1977 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 Uj66%CED64zsVBdRgxP!Ce+lwk>Hq)$ diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree index ca9dc39f357052f0aeba3e225721f83aec8f52c6..adec803981d7046cfa5f9c67e4bd2d1dd87b92bd 100644 GIT binary patch delta 253 zcmdnAnz3&UBWnZeROYaatPY-hJkI%fB}JJ@r6rkp=~E`(*L9oh=7YY!nHeP}?+r9l z5MyIt$dJv@DNX7TEYB}WNzO0LE78r(%quNPEuNAkK3Ow}#bmv254oXN<&4JhHwn6&{&P28_CIV!YYbuEzX`-BT@T#rCdYEEKF WYKlTZQGQlxa!K)&_9>;MNqPV$C0G0a diff --git a/_sources/connecting-to-the-broker.md.txt b/_sources/connecting-to-the-broker.md.txt index 05cf480..c106b3a 100644 --- a/_sources/connecting-to-the-broker.md.txt +++ b/_sources/connecting-to-the-broker.md.txt @@ -24,7 +24,7 @@ If your use case does not allow you to use a context manager, you can use the cl ``` ```{note} -Examples use the public [mosquitto test broker](https://test.mosquitto.org/). You can connect to this broker without any credentials. Alternatively, you can spin up a local mosquitto broker with Docker via `./scripts/develop` and connect with `aiomqtt.Client("localhost", port=1883)`. +Examples use the public [mosquitto test broker](https://test.mosquitto.org/). You can connect to this broker without any credentials. Alternatively, our [contribution guide](https://github.com/sbtinstruments/aiomqtt/blob/main/CONTRIBUTING.md) contains an explanation of how to spin up a local mosquitto broker with Docker. All examples in this documentation are self-contained and runnable as-is. ``` diff --git a/_sources/index.md.txt b/_sources/index.md.txt index d20af04..167ef6e 100644 --- a/_sources/index.md.txt +++ b/_sources/index.md.txt @@ -40,5 +40,6 @@ developer-interface GitHub Issue tracker Discussions +Contributing PyPI ``` diff --git a/alongside-fastapi-and-co.html b/alongside-fastapi-and-co.html index 8b81821..4a2cb36 100644 --- a/alongside-fastapi-and-co.html +++ b/alongside-fastapi-and-co.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/connecting-to-the-broker.html b/connecting-to-the-broker.html index a45e1a7..2d61041 100644 --- a/connecting-to-the-broker.html +++ b/connecting-to-the-broker.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • @@ -233,7 +234,7 @@

    Connecting to the broker

    Note

    -

    Examples use the public mosquitto test broker. You can connect to this broker without any credentials. Alternatively, you can spin up a local mosquitto broker with Docker via ./scripts/develop and connect with aiomqtt.Client("localhost", port=1883).

    +

    Examples use the public mosquitto test broker. You can connect to this broker without any credentials. Alternatively, our contribution guide contains an explanation of how to spin up a local mosquitto broker with Docker.

    All examples in this documentation are self-contained and runnable as-is.

    For a list of all available arguments to the client, see the API reference.

    diff --git a/developer-interface.html b/developer-interface.html index e8245ce..c7346b9 100644 --- a/developer-interface.html +++ b/developer-interface.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/genindex.html b/genindex.html index 2de2fb3..5e0f674 100644 --- a/genindex.html +++ b/genindex.html @@ -173,6 +173,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/index.html b/index.html index f46a1a0..ce1e696 100644 --- a/index.html +++ b/index.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/introduction.html b/introduction.html index 90cf46f..05b0753 100644 --- a/introduction.html +++ b/introduction.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/publishing-a-message.html b/publishing-a-message.html index dcfdd21..e7ae444 100644 --- a/publishing-a-message.html +++ b/publishing-a-message.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/reconnection.html b/reconnection.html index 0d56116..38b94ee 100644 --- a/reconnection.html +++ b/reconnection.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/search.html b/search.html index 3393088..053c354 100644 --- a/search.html +++ b/search.html @@ -172,6 +172,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI
  • diff --git a/searchindex.js b/searchindex.js index 397e059..bdbb9a4 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["alongside-fastapi-and-co", "connecting-to-the-broker", "developer-interface", "index", "introduction", "publishing-a-message", "reconnection", "subscribing-to-a-topic"], "filenames": ["alongside-fastapi-and-co.md", "connecting-to-the-broker.md", "developer-interface.md", "index.md", "introduction.md", "publishing-a-message.md", "reconnection.md", "subscribing-to-a-topic.md"], "titles": ["Alongside FastAPI & Co.", "Connecting to the broker", "Developer interface", "The idiomatic asyncio MQTT client", "Introduction", "Publishing a message", "Reconnection", "Subscribing to a topic"], "terms": {"mani": 0, "web": [0, 7], "framework": [0, 7], "take": [0, 7], "control": 0, "over": 0, "main": [0, 1, 3, 5, 6, 7], "function": [0, 1], "which": [0, 2, 5, 7], "can": [0, 1, 2, 3, 5, 6, 7], "make": [0, 1, 6, 7], "tricki": [0, 1], "figur": 0, "out": [0, 1, 7], "where": [0, 7], "creat": [0, 1, 2, 7], "client": [0, 1, 5, 6, 7], "how": [0, 1, 4, 7], "share": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 7], "connect": [0, 2, 6], "With": [0, 1], "0": [0, 1, 2, 3, 5], "93": 0, "starlett": 0, "you": [0, 1, 2, 3, 4, 5, 7], "us": [0, 1, 2, 3, 4, 5, 7], "lifespan": 0, "context": [0, 1, 2, 6], "manag": [0, 1, 2, 7], "safe": [0, 7], "set": [0, 1, 2, 5, 7], "up": [0, 1], "global": 0, "instanc": [0, 1, 2], "i": [0, 1, 2, 3, 4, 5, 6, 7], "minim": [0, 1, 5, 7], "work": [0, 1, 5, 7], "exampl": [0, 1, 5, 7], "side": 0, "an": [0, 1, 2, 3, 4, 5, 6, 7], "aiomqtt": [0, 1, 2, 3, 4, 5, 6, 7], "listen": [0, 6], "task": [0, 7], "messag": [0, 1, 3, 6], "public": [0, 1, 2], "get": [0, 1, 3, 4, 7], "import": [0, 1, 3, 5, 6, 7], "asyncio": [0, 1, 2, 4, 5, 6, 7], "contextlib": 0, "async": [0, 1, 2, 3, 5, 6, 7], "def": [0, 1, 5, 6, 7], "await": [0, 1, 3, 5, 6, 7], "subscrib": [0, 1, 2, 3, 5, 6], "humid": [0, 1, 3, 6, 7], "print": [0, 3, 6, 7], "payload": [0, 1, 2, 3, 6, 7], "none": [0, 2, 5], "asynccontextmanag": 0, "app": 0, "test": [0, 1, 3, 5, 6, 7], "mosquitto": [0, 1, 3, 5, 6, 7], "org": [0, 1, 3, 5, 6, 7], "c": 0, "avail": [0, 1], "mqtt": [0, 1, 2, 4, 5, 7], "unawait": [0, 7], "loop": [0, 3, 7], "get_event_loop": [0, 7], "create_task": [0, 7], "yield": [0, 2], "cancel": [0, 7], "wait": [0, 2, 3, 7], "try": [0, 3, 4, 6, 7], "except": [0, 1, 6, 7], "cancellederror": [0, 7], "pass": [0, 1, 2, 7], "publish": [0, 1, 2, 3, 7], "outsid": [0, 1, 3, 5, 7], "38": [0, 1, 3], "combin": [0, 3, 7], "some": [0, 4, 7], "concept": 0, "address": [0, 2], "more": [0, 1, 3], "detail": [0, 7], "other": [0, 3, 7], "section": [0, 7], "The": [0, 1, 2, 5, 6], "between": [0, 5], "rout": 0, "explain": [0, 4], "we": [0, 1, 3, 4, 6, 7], "don": [0, 4, 5, 7], "t": [0, 3, 4, 5, 7], "immedi": [0, 5], "order": [0, 2, 7], "avoid": [0, 1], "block": [0, 6], "code": [0, 1, 3, 6, 7], "without": [0, 1], "initi": [0, 1], "": [0, 1, 2, 4, 5, 6, 7], "state": 0, "instead": [0, 2, 3, 7], "variabl": 0, "To": [1, 5, 6, 7], "topic": [1, 5], "first": [1, 2, 7], "need": [1, 4, 7], "temperatur": [1, 5, 7], "28": [1, 5], "4": [1, 5], "run": [1, 3, 5, 6, 7], "when": [1, 2, 4, 5, 7], "enter": 1, "statement": 1, "disconnect": [1, 2, 3], "exit": [1, 7], "again": [1, 7], "easier": 1, "resourc": 1, "like": [1, 3, 6, 7], "network": [1, 2, 6], "file": 1, "ensur": 1, "teardown": 1, "logic": [1, 2], "alwai": [1, 2], "execut": [1, 7], "even": 1, "case": [1, 7], "If": [1, 2, 3, 4, 5, 7], "your": [1, 3, 4, 7], "doe": 1, "allow": [1, 2], "__aenter__": [1, 2], "__aexit__": [1, 2], "method": [1, 2, 3], "directli": [1, 3], "workaround": 1, "similar": [1, 2], "would": 1, "manual": 1, "approach": [1, 7], "sure": 1, "___aexit___": 1, "also": [1, 5], "call": [1, 2, 3, 7], "bit": [1, 7], "right": 1, "ani": [1, 2, 6], "credenti": 1, "altern": 1, "spin": 1, "local": [1, 2], "docker": 1, "via": [1, 3], "script": 1, "develop": 1, "localhost": 1, "port": [1, 2], "1883": [1, 2], "all": [1, 2, 5, 7], "document": [1, 4], "ar": [1, 3, 4, 5, 6, 7], "self": [1, 7], "contain": [1, 2], "runnabl": 1, "For": [1, 2, 4, 5, 7], "list": [1, 2], "argument": [1, 2], "see": [1, 5, 7], "api": 1, "refer": [1, 4, 7], "often": 1, "want": [1, 5, 7], "send": [1, 5], "receiv": [1, 5, 7], "multipl": [1, 5, 7], "differ": [1, 3, 5, 7], "locat": 1, "our": [1, 2, 6, 7], "could": 1, "new": [1, 4, 5, 7], "each": [1, 5, 7], "time": [1, 2, 3, 5, 6, 7], "veri": [1, 3, 7], "perform": 1, "ll": [1, 7], "bandwidth": 1, "publish_temperatur": 1, "publish_humid": 1, "insid": [1, 7], "non": [1, 5], "kept": 1, "aliv": 1, "goe": 1, "offlin": 1, "mean": [1, 2, 6], "store": [1, 5], "subscript": [1, 2, 7], "queue": [1, 2], "qo": [1, 2, 7], "1": [1, 3, 5, 7], "2": [1, 5, 7], "miss": [1, 4], "ha": 1, "yet": 1, "acknowledg": [1, 5], "retransmit": 1, "reconnect": 1, "clean_sess": [1, 2], "paramet": [1, 2, 5, 7], "fals": [1, 2], "true": [1, 2, 5, 6, 7], "amount": [1, 7], "queu": [1, 2, 7], "limit": [1, 7], "memori": 1, "come": [1, 7], "back": [1, 5], "onlin": 1, "long": [1, 6, 7], "eventu": 1, "start": [1, 2, 3, 4, 7], "discard": [1, 2], "class": [2, 7], "hostnam": 2, "str": [2, 5], "int": [2, 5], "usernam": 2, "password": 2, "logger": 2, "log": 2, "client_id": 2, "tls_context": 2, "ssl": 2, "sslcontext": 2, "tls_param": 2, "tlsparamet": 2, "tls_insecur": 2, "bool": 2, "proxi": 2, "proxyset": 2, "protocol": 2, "protocolvers": 2, "Will": 2, "transport": 2, "tcp": 2, "timeout": 2, "float": [2, 5], "keepal": 2, "60": 2, "bind_address": 2, "bind_port": 2, "clean_start": 2, "3": [2, 3, 7], "properti": 2, "message_retry_set": 2, "20": 2, "socket_opt": 2, "iter": 2, "socketopt": 2, "max_concurrent_outgoing_cal": 2, "websocket_path": 2, "websocket_head": 2, "websockethead": 2, "max_inflight_messag": 2, "max_queued_messag": 2, "broker": [2, 3, 5], "ip": 2, "remot": 2, "authent": 2, "custom": 2, "id": 2, "one": [2, 5, 7], "gener": [2, 7], "automat": [2, 5], "tl": 2, "configur": 2, "enabl": 2, "disabl": 2, "server": 2, "verif": 2, "version": 2, "unexpectedli": 2, "remov": [2, 7], "inform": 2, "about": [2, 3], "persist": 2, "retain": 2, "either": 2, "websocket": 2, "default": [2, 3, 5, 7], "commun": [2, 5], "second": [2, 6, 7], "bind": 2, "v5": 2, "onli": [2, 3, 5, 7], "clean": 2, "flag": 2, "never": 2, "success": 2, "associ": 2, "deprec": 2, "option": [2, 5, 7], "underli": [2, 3], "socket": 2, "maximum": 2, "number": 2, "concurr": 2, "outgo": 2, "path": 2, "header": 2, "part": [2, 5], "wai": [2, 7], "through": [2, 5, 7], "flow": 2, "onc": [2, 5], "unlimit": [2, 7], "tupl": 2, "paho": [2, 3], "subscribeopt": 2, "arg": 2, "kwarg": 2, "reasoncod": 2, "request": [2, 4, 7], "level": [2, 5], "addit": 2, "posit": 2, "complet": 2, "math": 2, "inf": 2, "indefinit": 2, "keyword": 2, "unsubscrib": 2, "from": [2, 3, 6, 7], "unsubscript": 2, "byte": [2, 5], "bytearrai": [2, 5], "queue_class": [2, 7], "type": [2, 3, 5, 7], "queue_maxs": [2, 7], "asyncgener": 2, "incom": [2, 7], "return": [2, 3, 5, 7], "fifo": [2, 7], "lifo": [2, 7], "lifoqueu": [2, 7], "prioriti": [2, 7], "subclass": [2, 7], "priorityqueu": [2, 7], "restrict": 2, "size": [2, 7], "full": 2, "warn": 2, "less": 2, "infinit": [2, 7], "exc_typ": 2, "baseexcept": 2, "exc": 2, "tb": 2, "tracebacktyp": 2, "mid": [2, 7], "wrap": [2, 6], "own": 2, "match": [2, 7], "meant": 2, "instanti": 2, "user": 2, "wa": 2, "qualiti": [2, 7], "servic": [2, 7], "whether": 2, "valu": [2, 7], "string": [2, 5], "check": 2, "given": 2, "against": [2, 6], "otherwis": 2, "A": 2, "placehold": 2, "write": 3, "stabil": 3, "proven": 3, "librari": 3, "interfac": 3, "No": 3, "callback": 3, "welcom": 3, "mqtterror": [3, 6], "grace": 3, "forget": [3, 7], "on_unsubscrib": 3, "on_disconnect": 3, "etc": 3, "support": 3, "5": [3, 6, 7], "fulli": 3, "hint": 3, "did": 3, "mention": 3, "pip": 3, "depend": 3, "latest": 3, "github": [3, 4], "git": 3, "http": [3, 7], "com": 3, "sbtinstrument": 3, "sinc": 3, "python": [3, 7], "8": 3, "event": 3, "proactoreventloop": 3, "said": [3, 4], "doesn": [3, 7], "add_read": 3, "requir": 3, "pleas": 3, "switch": 3, "built": 3, "selectoreventloop": 3, "chang": 3, "selector": 3, "platform": 3, "sy": 3, "lower": [3, 7], "win32": 3, "o": [3, 7], "name": 3, "nt": 3, "set_event_loop_polici": 3, "windowsselectoreventlooppolici": 3, "applic": [3, 6], "usual": [3, 5], "under": 3, "bsd": 3, "claus": 3, "dual": 3, "One": 3, "so": [3, 6, 7], "eclips": 3, "distribut": 3, "v1": 3, "It": [3, 4], "almost": 3, "word": 3, "ident": 3, "copyright": 3, "owner": 3, "edl": 3, "holder": 3, "foundat": 3, "inc": 3, "re": [3, 4, 7], "happi": [3, 4], "read": [3, 4], "md": 3, "adher": 3, "semant": 3, "break": 3, "occur": 3, "major": 3, "x": 3, "releas": 3, "live": 3, "follow": 3, "principl": 3, "keep": [3, 7], "what": [3, 7], "look": 3, "There": 3, "few": 3, "synchron": 3, "micropython": 3, "asynchron": 3, "microcontrol": 3, "gmqtt": 3, "fastapi": 3, "wrapper": 3, "around": 3, "simplifi": 3, "integr": 3, "amqtt": 3, "includ": 3, "trio": 3, "base": [3, 7], "aim": 4, "cover": 4, "everyth": [4, 7], "know": 4, "project": 4, "expect": 4, "knowledg": 4, "thing": [4, 5], "clearli": 4, "possibl": [4, 7], "stuck": 4, "hesit": 4, "discuss": 4, "help": 4, "recommend": 4, "hivemq": 4, "essenti": 4, "guid": 4, "afterward": [4, 7], "oasi": [4, 7], "specif": [4, 7], "great": 4, "realpython": 4, "walkthrough": 4, "doc": 4, "big": 4, "open": 4, "issu": 4, "pull": 4, "find": 4, "error": 4, "have": [4, 5, 6, 7], "idea": [4, 7], "improv": 4, "easi": [4, 7], "unclear": 4, "newcom": 4, "alreadi": 4, "familiar": 4, "fresh": 4, "ey": 4, "here": [4, 7], "That": [4, 7], "let": [4, 5, 7], "dive": 4, "transmit": 5, "stream": 5, "accept": 5, "convert": 5, "struct": 5, "pack": 5, "object": 5, "specifi": 5, "zero": 5, "length": 5, "sent": 5, "standard": 5, "implement": [5, 7], "yourself": 5, "dict": 5, "json": 5, "dump": 5, "On": 5, "end": 5, "load": 5, "decod": 5, "reliabl": 5, "three": 5, "At": 5, "most": 5, "guarante": 5, "deliveri": 5, "fastest": 5, "least": 5, "deliv": 5, "possibli": 5, "sender": 5, "until": [5, 7], "receipt": 5, "exactli": 5, "four": 5, "handshak": 5, "slowest": 5, "two": 5, "same": 5, "defin": 5, "relai": 5, "recent": 5, "last": 5, "after": 5, "thei": [5, 7], "per": 5, "previou": [5, 7], "overwritten": 5, "delet": 5, "empti": 5, "howev": 5, "necessari": 5, "overwrit": 5, "ones": 5, "inher": 6, "unstabl": 6, "fail": 6, "especi": 6, "challeng": 6, "resili": 6, "failur": 6, "abl": 6, "detect": 6, "recov": 6, "them": [6, 7], "design": 6, "reusabl": 6, "reentrant": 6, "interv": 6, "while": [6, 7], "f": [6, 7], "lost": 6, "sleep": [6, 7], "wildcard": 7, "now": 7, "appear": 7, "consol": 7, "imagin": 7, "measur": 7, "handl": 7, "provid": 7, "In": 7, "twice": 7, "sequenti": 7, "basi": 7, "modifi": 7, "e": 7, "g": 7, "ascendingli": 7, "ti": 7, "identifi": 7, "sai": 7, "priorit": 7, "custompriorityqueu": 7, "_put": 7, "item": 7, "assign": 7, "super": 7, "_get": 7, "By": 7, "taskgroup": 7, "simul": 7, "bound": 7, "tg": 7, "spawn": 7, "coroutin": 7, "sens": 7, "cpu": 7, "should": 7, "snippet": 7, "abov": 7, "sometim": 7, "singl": 7, "distributor": 7, "sort": 7, "temperature_consum": 7, "temperature_queu": 7, "humidity_consum": 7, "humidity_queu": 7, "appropri": 7, "put_nowait": 7, "elif": 7, "group": 7, "notic": 7, "program": 7, "finish": 7, "practic": 7, "gather": 7, "11": 7, "alongsid": 7, "slept": 7, "becaus": 7, "fire": 7, "care": 7, "rais": 7, "propag": 7, "explicitli": 7, "unhandl": 7, "silent": 7, "ignor": 7, "background_task": 7, "save": 7, "garbag": 7, "collect": 7, "add": 7, "add_done_callback": 7, "do": 7, "someth": 7, "els": 7, "might": 7, "done": 7, "certain": 7, "introduc": 7, "neat": 7, "featur": 7, "result": 7, "timeouterror": 7}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"alongsid": 0, "fastapi": 0, "co": 0, "connect": 1, "broker": 1, "share": 1, "persist": 1, "session": 1, "develop": 2, "interfac": 2, "client": [2, 3], "messag": [2, 5, 7], "topic": [2, 7], "wildcard": 2, "The": [3, 7], "idiomat": 3, "asyncio": 3, "mqtt": 3, "instal": 3, "note": 3, "window": 3, "user": 3, "licens": 3, "contribut": 3, "version": 3, "changelog": 3, "relat": 3, "project": 3, "introduct": 4, "publish": 5, "payload": 5, "encod": 5, "qualiti": 5, "servic": 5, "qo": 5, "retain": 5, "reconnect": 6, "subscrib": 7, "filter": 7, "queue": 7, "process": 7, "concurr": 7, "listen": 7, "without": 7, "block": 7, "stop": 7, "after": 7, "timeout": 7}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Alongside FastAPI & Co.": [[0, "alongside-fastapi-co"]], "Connecting to the broker": [[1, "connecting-to-the-broker"]], "Sharing the connection": [[1, "sharing-the-connection"]], "Persistent sessions": [[1, "persistent-sessions"]], "Developer interface": [[2, "developer-interface"]], "Client": [[2, "client"]], "Message": [[2, "message"]], "Topic": [[2, "topic"]], "Wildcard": [[2, "wildcard"]], "The idiomatic asyncio MQTT client": [[3, "the-idiomatic-asyncio-mqtt-client"]], "Installation": [[3, "installation"]], "Note for Windows users": [[3, "note-for-windows-users"]], "License": [[3, "license"]], "Contributing": [[3, "contributing"]], "Versioning": [[3, "versioning"]], "Changelog": [[3, "changelog"]], "Related projects": [[3, "related-projects"]], "Introduction": [[4, "introduction"]], "Publishing a message": [[5, "publishing-a-message"]], "Payload encoding": [[5, "payload-encoding"]], "Quality of Service (QoS)": [[5, "quality-of-service-qos"]], "Retained messages": [[5, "retained-messages"]], "Reconnection": [[6, "reconnection"]], "Subscribing to a topic": [[7, "subscribing-to-a-topic"]], "Filtering messages": [[7, "filtering-messages"]], "The message queue": [[7, "the-message-queue"]], "Processing concurrently": [[7, "processing-concurrently"]], "Listening without blocking": [[7, "listening-without-blocking"]], "Stop listening": [[7, "stop-listening"]], "Stop listening after timeout": [[7, "stop-listening-after-timeout"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["alongside-fastapi-and-co", "connecting-to-the-broker", "developer-interface", "index", "introduction", "publishing-a-message", "reconnection", "subscribing-to-a-topic"], "filenames": ["alongside-fastapi-and-co.md", "connecting-to-the-broker.md", "developer-interface.md", "index.md", "introduction.md", "publishing-a-message.md", "reconnection.md", "subscribing-to-a-topic.md"], "titles": ["Alongside FastAPI & Co.", "Connecting to the broker", "Developer interface", "The idiomatic asyncio MQTT client", "Introduction", "Publishing a message", "Reconnection", "Subscribing to a topic"], "terms": {"mani": 0, "web": [0, 7], "framework": [0, 7], "take": [0, 7], "control": 0, "over": 0, "main": [0, 1, 3, 5, 6, 7], "function": [0, 1], "which": [0, 2, 5, 7], "can": [0, 1, 2, 3, 5, 6, 7], "make": [0, 1, 6, 7], "tricki": [0, 1], "figur": 0, "out": [0, 1, 7], "where": [0, 7], "creat": [0, 1, 2, 7], "client": [0, 1, 5, 6, 7], "how": [0, 1, 4, 7], "share": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 7], "connect": [0, 2, 6], "With": [0, 1], "0": [0, 1, 2, 3, 5], "93": 0, "starlett": 0, "you": [0, 1, 2, 3, 4, 5, 7], "us": [0, 1, 2, 3, 4, 5, 7], "lifespan": 0, "context": [0, 1, 2, 6], "manag": [0, 1, 2, 7], "safe": [0, 7], "set": [0, 1, 2, 5, 7], "up": [0, 1], "global": 0, "instanc": [0, 1, 2], "i": [0, 1, 2, 3, 4, 5, 6, 7], "minim": [0, 1, 5, 7], "work": [0, 1, 5, 7], "exampl": [0, 1, 5, 7], "side": 0, "an": [0, 1, 2, 3, 4, 5, 6, 7], "aiomqtt": [0, 1, 2, 3, 4, 5, 6, 7], "listen": [0, 6], "task": [0, 7], "messag": [0, 1, 3, 6], "public": [0, 1, 2], "get": [0, 1, 3, 4, 7], "import": [0, 1, 3, 5, 6, 7], "asyncio": [0, 1, 2, 4, 5, 6, 7], "contextlib": 0, "async": [0, 1, 2, 3, 5, 6, 7], "def": [0, 1, 5, 6, 7], "await": [0, 1, 3, 5, 6, 7], "subscrib": [0, 1, 2, 3, 5, 6], "humid": [0, 1, 3, 6, 7], "print": [0, 3, 6, 7], "payload": [0, 1, 2, 3, 6, 7], "none": [0, 2, 5], "asynccontextmanag": 0, "app": 0, "test": [0, 1, 3, 5, 6, 7], "mosquitto": [0, 1, 3, 5, 6, 7], "org": [0, 1, 3, 5, 6, 7], "c": 0, "avail": [0, 1], "mqtt": [0, 1, 2, 4, 5, 7], "unawait": [0, 7], "loop": [0, 3, 7], "get_event_loop": [0, 7], "create_task": [0, 7], "yield": [0, 2], "cancel": [0, 7], "wait": [0, 2, 3, 7], "try": [0, 3, 4, 6, 7], "except": [0, 1, 6, 7], "cancellederror": [0, 7], "pass": [0, 1, 2, 7], "publish": [0, 1, 2, 3, 7], "outsid": [0, 1, 3, 5, 7], "38": [0, 1, 3], "combin": [0, 3, 7], "some": [0, 4, 7], "concept": 0, "address": [0, 2], "more": [0, 1, 3], "detail": [0, 7], "other": [0, 3, 7], "section": [0, 7], "The": [0, 1, 2, 5, 6], "between": [0, 5], "rout": 0, "explain": [0, 4], "we": [0, 1, 3, 4, 6, 7], "don": [0, 4, 5, 7], "t": [0, 3, 4, 5, 7], "immedi": [0, 5], "order": [0, 2, 7], "avoid": [0, 1], "block": [0, 6], "code": [0, 1, 3, 6, 7], "without": [0, 1], "initi": [0, 1], "": [0, 1, 2, 4, 5, 6, 7], "state": 0, "instead": [0, 2, 3, 7], "variabl": 0, "To": [1, 5, 6, 7], "topic": [1, 5], "first": [1, 2, 7], "need": [1, 4, 7], "temperatur": [1, 5, 7], "28": [1, 5], "4": [1, 5], "run": [1, 3, 5, 6, 7], "when": [1, 2, 4, 5, 7], "enter": 1, "statement": 1, "disconnect": [1, 2, 3], "exit": [1, 7], "again": [1, 7], "easier": 1, "resourc": 1, "like": [1, 3, 6, 7], "network": [1, 2, 6], "file": 1, "ensur": 1, "teardown": 1, "logic": [1, 2], "alwai": [1, 2], "execut": [1, 7], "even": 1, "case": [1, 7], "If": [1, 2, 3, 4, 5, 7], "your": [1, 3, 4, 7], "doe": 1, "allow": [1, 2], "__aenter__": [1, 2], "__aexit__": [1, 2], "method": [1, 2, 3], "directli": [1, 3], "workaround": 1, "similar": [1, 2], "would": 1, "manual": 1, "approach": [1, 7], "sure": 1, "___aexit___": 1, "also": [1, 5], "call": [1, 2, 3, 7], "bit": [1, 7], "right": 1, "ani": [1, 2, 6], "credenti": 1, "altern": 1, "our": [1, 2, 6, 7], "contribut": 1, "guid": [1, 4], "contain": [1, 2], "explan": 1, "spin": 1, "local": [1, 2], "docker": 1, "all": [1, 2, 5, 7], "document": [1, 4], "ar": [1, 3, 4, 5, 6, 7], "self": [1, 7], "runnabl": 1, "For": [1, 2, 4, 5, 7], "list": [1, 2], "argument": [1, 2], "see": [1, 5, 7], "api": 1, "refer": [1, 4, 7], "often": 1, "want": [1, 5, 7], "send": [1, 5], "receiv": [1, 5, 7], "multipl": [1, 5, 7], "differ": [1, 3, 5, 7], "locat": 1, "could": 1, "new": [1, 4, 5, 7], "each": [1, 5, 7], "time": [1, 2, 3, 5, 6, 7], "veri": [1, 3, 7], "perform": 1, "ll": [1, 7], "bandwidth": 1, "publish_temperatur": 1, "publish_humid": 1, "insid": [1, 7], "non": [1, 5], "kept": 1, "aliv": 1, "goe": 1, "offlin": 1, "mean": [1, 2, 6], "store": [1, 5], "subscript": [1, 2, 7], "queue": [1, 2], "qo": [1, 2, 7], "1": [1, 3, 5, 7], "2": [1, 5, 7], "miss": [1, 4], "ha": 1, "yet": 1, "acknowledg": [1, 5], "retransmit": 1, "reconnect": 1, "clean_sess": [1, 2], "paramet": [1, 2, 5, 7], "fals": [1, 2], "true": [1, 2, 5, 6, 7], "amount": [1, 7], "queu": [1, 2, 7], "limit": [1, 7], "memori": 1, "come": [1, 7], "back": [1, 5], "onlin": 1, "long": [1, 6, 7], "eventu": 1, "start": [1, 2, 3, 4, 7], "discard": [1, 2], "class": [2, 7], "hostnam": 2, "str": [2, 5], "port": 2, "int": [2, 5], "1883": 2, "usernam": 2, "password": 2, "logger": 2, "log": 2, "client_id": 2, "tls_context": 2, "ssl": 2, "sslcontext": 2, "tls_param": 2, "tlsparamet": 2, "tls_insecur": 2, "bool": 2, "proxi": 2, "proxyset": 2, "protocol": 2, "protocolvers": 2, "Will": 2, "transport": 2, "tcp": 2, "timeout": 2, "float": [2, 5], "keepal": 2, "60": 2, "bind_address": 2, "bind_port": 2, "clean_start": 2, "3": [2, 3, 7], "properti": 2, "message_retry_set": 2, "20": 2, "socket_opt": 2, "iter": 2, "socketopt": 2, "max_concurrent_outgoing_cal": 2, "websocket_path": 2, "websocket_head": 2, "websockethead": 2, "max_inflight_messag": 2, "max_queued_messag": 2, "broker": [2, 3, 5], "ip": 2, "remot": 2, "authent": 2, "custom": 2, "id": 2, "one": [2, 5, 7], "gener": [2, 7], "automat": [2, 5], "tl": 2, "configur": 2, "enabl": 2, "disabl": 2, "server": 2, "verif": 2, "version": 2, "unexpectedli": 2, "remov": [2, 7], "inform": 2, "about": [2, 3], "persist": 2, "retain": 2, "either": 2, "websocket": 2, "default": [2, 3, 5, 7], "commun": [2, 5], "second": [2, 6, 7], "bind": 2, "v5": 2, "onli": [2, 3, 5, 7], "clean": 2, "flag": 2, "never": 2, "success": 2, "associ": 2, "deprec": 2, "option": [2, 5, 7], "underli": [2, 3], "socket": 2, "maximum": 2, "number": 2, "concurr": 2, "outgo": 2, "path": 2, "header": 2, "part": [2, 5], "wai": [2, 7], "through": [2, 5, 7], "flow": 2, "onc": [2, 5], "unlimit": [2, 7], "tupl": 2, "paho": [2, 3], "subscribeopt": 2, "arg": 2, "kwarg": 2, "reasoncod": 2, "request": [2, 4, 7], "level": [2, 5], "addit": 2, "posit": 2, "complet": 2, "math": 2, "inf": 2, "indefinit": 2, "keyword": 2, "unsubscrib": 2, "from": [2, 3, 6, 7], "unsubscript": 2, "byte": [2, 5], "bytearrai": [2, 5], "queue_class": [2, 7], "type": [2, 3, 5, 7], "queue_maxs": [2, 7], "asyncgener": 2, "incom": [2, 7], "return": [2, 3, 5, 7], "fifo": [2, 7], "lifo": [2, 7], "lifoqueu": [2, 7], "prioriti": [2, 7], "subclass": [2, 7], "priorityqueu": [2, 7], "restrict": 2, "size": [2, 7], "full": 2, "warn": 2, "less": 2, "infinit": [2, 7], "exc_typ": 2, "baseexcept": 2, "exc": 2, "tb": 2, "tracebacktyp": 2, "mid": [2, 7], "wrap": [2, 6], "own": 2, "match": [2, 7], "meant": 2, "instanti": 2, "user": 2, "wa": 2, "qualiti": [2, 7], "servic": [2, 7], "whether": 2, "valu": [2, 7], "string": [2, 5], "check": 2, "given": 2, "against": [2, 6], "otherwis": 2, "A": 2, "placehold": 2, "write": 3, "stabil": 3, "proven": 3, "librari": 3, "interfac": 3, "No": 3, "callback": 3, "welcom": 3, "mqtterror": [3, 6], "grace": 3, "forget": [3, 7], "on_unsubscrib": 3, "on_disconnect": 3, "etc": 3, "support": 3, "5": [3, 6, 7], "fulli": 3, "hint": 3, "did": 3, "mention": 3, "via": 3, "pip": 3, "depend": 3, "latest": 3, "github": [3, 4], "git": 3, "http": [3, 7], "com": 3, "sbtinstrument": 3, "sinc": 3, "python": [3, 7], "8": 3, "event": 3, "proactoreventloop": 3, "said": [3, 4], "doesn": [3, 7], "add_read": 3, "requir": 3, "pleas": 3, "switch": 3, "built": 3, "selectoreventloop": 3, "chang": 3, "selector": 3, "platform": 3, "sy": 3, "lower": [3, 7], "win32": 3, "o": [3, 7], "name": 3, "nt": 3, "set_event_loop_polici": 3, "windowsselectoreventlooppolici": 3, "applic": [3, 6], "usual": [3, 5], "under": 3, "bsd": 3, "claus": 3, "dual": 3, "One": 3, "so": [3, 6, 7], "eclips": 3, "distribut": 3, "v1": 3, "It": [3, 4], "almost": 3, "word": 3, "ident": 3, "copyright": 3, "owner": 3, "edl": 3, "holder": 3, "foundat": 3, "inc": 3, "re": [3, 4, 7], "happi": [3, 4], "read": [3, 4], "md": 3, "adher": 3, "semant": 3, "break": 3, "occur": 3, "major": 3, "x": 3, "releas": 3, "live": 3, "follow": 3, "principl": 3, "keep": [3, 7], "what": [3, 7], "look": 3, "There": 3, "few": 3, "synchron": 3, "micropython": 3, "asynchron": 3, "microcontrol": 3, "gmqtt": 3, "fastapi": 3, "wrapper": 3, "around": 3, "simplifi": 3, "integr": 3, "amqtt": 3, "includ": 3, "trio": 3, "base": [3, 7], "aim": 4, "cover": 4, "everyth": [4, 7], "know": 4, "project": 4, "expect": 4, "knowledg": 4, "thing": [4, 5], "clearli": 4, "possibl": [4, 7], "stuck": 4, "hesit": 4, "discuss": 4, "help": 4, "recommend": 4, "hivemq": 4, "essenti": 4, "afterward": [4, 7], "oasi": [4, 7], "specif": [4, 7], "great": 4, "realpython": 4, "walkthrough": 4, "doc": 4, "big": 4, "open": 4, "issu": 4, "pull": 4, "find": 4, "error": 4, "have": [4, 5, 6, 7], "idea": [4, 7], "improv": 4, "easi": [4, 7], "unclear": 4, "newcom": 4, "alreadi": 4, "familiar": 4, "fresh": 4, "ey": 4, "here": [4, 7], "That": [4, 7], "let": [4, 5, 7], "dive": 4, "transmit": 5, "stream": 5, "accept": 5, "convert": 5, "struct": 5, "pack": 5, "object": 5, "specifi": 5, "zero": 5, "length": 5, "sent": 5, "standard": 5, "implement": [5, 7], "yourself": 5, "dict": 5, "json": 5, "dump": 5, "On": 5, "end": 5, "load": 5, "decod": 5, "reliabl": 5, "three": 5, "At": 5, "most": 5, "guarante": 5, "deliveri": 5, "fastest": 5, "least": 5, "deliv": 5, "possibli": 5, "sender": 5, "until": [5, 7], "receipt": 5, "exactli": 5, "four": 5, "handshak": 5, "slowest": 5, "two": 5, "same": 5, "defin": 5, "relai": 5, "recent": 5, "last": 5, "after": 5, "thei": [5, 7], "per": 5, "previou": [5, 7], "overwritten": 5, "delet": 5, "empti": 5, "howev": 5, "necessari": 5, "overwrit": 5, "ones": 5, "inher": 6, "unstabl": 6, "fail": 6, "especi": 6, "challeng": 6, "resili": 6, "failur": 6, "abl": 6, "detect": 6, "recov": 6, "them": [6, 7], "design": 6, "reusabl": 6, "reentrant": 6, "interv": 6, "while": [6, 7], "f": [6, 7], "lost": 6, "sleep": [6, 7], "wildcard": 7, "now": 7, "appear": 7, "consol": 7, "imagin": 7, "measur": 7, "handl": 7, "provid": 7, "In": 7, "twice": 7, "sequenti": 7, "basi": 7, "modifi": 7, "e": 7, "g": 7, "ascendingli": 7, "ti": 7, "identifi": 7, "sai": 7, "priorit": 7, "custompriorityqueu": 7, "_put": 7, "item": 7, "assign": 7, "super": 7, "_get": 7, "By": 7, "taskgroup": 7, "simul": 7, "bound": 7, "tg": 7, "spawn": 7, "coroutin": 7, "sens": 7, "cpu": 7, "should": 7, "snippet": 7, "abov": 7, "sometim": 7, "singl": 7, "distributor": 7, "sort": 7, "temperature_consum": 7, "temperature_queu": 7, "humidity_consum": 7, "humidity_queu": 7, "appropri": 7, "put_nowait": 7, "elif": 7, "group": 7, "notic": 7, "program": 7, "finish": 7, "practic": 7, "gather": 7, "11": 7, "alongsid": 7, "slept": 7, "becaus": 7, "fire": 7, "care": 7, "rais": 7, "propag": 7, "explicitli": 7, "unhandl": 7, "silent": 7, "ignor": 7, "background_task": 7, "save": 7, "garbag": 7, "collect": 7, "add": 7, "add_done_callback": 7, "do": 7, "someth": 7, "els": 7, "might": 7, "done": 7, "certain": 7, "introduc": 7, "neat": 7, "featur": 7, "result": 7, "timeouterror": 7}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"alongsid": 0, "fastapi": 0, "co": 0, "connect": 1, "broker": 1, "share": 1, "persist": 1, "session": 1, "develop": 2, "interfac": 2, "client": [2, 3], "messag": [2, 5, 7], "topic": [2, 7], "wildcard": 2, "The": [3, 7], "idiomat": 3, "asyncio": 3, "mqtt": 3, "instal": 3, "note": 3, "window": 3, "user": 3, "licens": 3, "contribut": 3, "version": 3, "changelog": 3, "relat": 3, "project": 3, "introduct": 4, "publish": 5, "payload": 5, "encod": 5, "qualiti": 5, "servic": 5, "qo": 5, "retain": 5, "reconnect": 6, "subscrib": 7, "filter": 7, "queue": 7, "process": 7, "concurr": 7, "listen": 7, "without": 7, "block": 7, "stop": 7, "after": 7, "timeout": 7}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Alongside FastAPI & Co.": [[0, "alongside-fastapi-co"]], "Connecting to the broker": [[1, "connecting-to-the-broker"]], "Sharing the connection": [[1, "sharing-the-connection"]], "Persistent sessions": [[1, "persistent-sessions"]], "Developer interface": [[2, "developer-interface"]], "Client": [[2, "client"]], "Message": [[2, "message"]], "Topic": [[2, "topic"]], "Wildcard": [[2, "wildcard"]], "The idiomatic asyncio MQTT client": [[3, "the-idiomatic-asyncio-mqtt-client"]], "Installation": [[3, "installation"]], "Note for Windows users": [[3, "note-for-windows-users"]], "License": [[3, "license"]], "Contributing": [[3, "contributing"]], "Versioning": [[3, "versioning"]], "Changelog": [[3, "changelog"]], "Related projects": [[3, "related-projects"]], "Introduction": [[4, "introduction"]], "Publishing a message": [[5, "publishing-a-message"]], "Payload encoding": [[5, "payload-encoding"]], "Quality of Service (QoS)": [[5, "quality-of-service-qos"]], "Retained messages": [[5, "retained-messages"]], "Reconnection": [[6, "reconnection"]], "Subscribing to a topic": [[7, "subscribing-to-a-topic"]], "Filtering messages": [[7, "filtering-messages"]], "The message queue": [[7, "the-message-queue"]], "Processing concurrently": [[7, "processing-concurrently"]], "Listening without blocking": [[7, "listening-without-blocking"]], "Stop listening": [[7, "stop-listening"]], "Stop listening after timeout": [[7, "stop-listening-after-timeout"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/subscribing-to-a-topic.html b/subscribing-to-a-topic.html index 3024209..94edf9b 100644 --- a/subscribing-to-a-topic.html +++ b/subscribing-to-a-topic.html @@ -175,6 +175,7 @@
  • GitHub
  • Issue tracker
  • Discussions
  • +
  • Contributing
  • PyPI