Software /
code /
prosody-modules
File
mod_pubsub_mqtt/README.md @ 6120:bd3ff802d883
mod_anti_spam: Fix another traceback for origin sessions without an IP
This is likely to be the case for stanzas originating from local hosts, for
example (so not true s2s). It should be safe to bypass the IP check for those.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 28 Dec 2024 21:02:08 +0000 |
parent | 6003:fe081789f7b5 |
line wrap: on
line source
--- labels: - 'Stage-Beta' summary: 'MQTT interface to Prosody''s pubsub' ... Introduction ------------ [MQTT](http://mqtt.org/) is a lightweight binary pubsub protocol suited to embedded devices. This module provides a way for MQTT clients to connect to Prosody and publish or subscribe to local pubsub nodes. The module currently implements MQTT version 3.1.1. Details ------- MQTT has the concept of 'topics' (similar to XMPP's pubsub 'nodes'). mod\_pubsub\_mqtt maps pubsub nodes to MQTT topics of the form `<HOST>/<TYPE>/<NODE>`, e.g.`pubsub.example.org/json/mynode`. The 'TYPE' parameter in the topic allows the client to choose the payload format it will send/receive. For the supported values of 'TYPE' see the 'Payloads' section below. ### Limitations The current implementation is quite basic, and in particular: - Authentication is not supported - Only QoS level 0 is supported ### Payloads XMPP payloads are always XML, but MQTT does not define a payload format. Therefore mod\_pubsub\_mqtt has some built-in data format translators. Currently supported data types: - `json`: See [XEP-0335](http://xmpp.org/extensions/xep-0335.html) for the format. - `utf8`: Plain UTF-8 text (wrapped inside `<data xmlns="https://prosody.im/protocol/mqtt"/>`) - `atom_title`: Returns the title of an Atom entry as UTF-8 data Configuration ------------- There is no special configuration for this module. Simply load it on your pubsub host like so: Component "pubsub.example.org" "pubsub" modules_enabled = { "pubsub_mqtt" } You may also configure which port(s) mod\_pubsub\_mqtt listens on using Prosody's standard config directives, such as `mqtt_ports` and `mqtt_tls_ports`. Network settings **must** be specified in the global section of the config file, not under any particular pubsub component. The default port is 1883 (MQTT's standard port number) and 8883 for TLS connections. Compatibility ------------- ------- -------------- trunk Works 0.12 Works ------- --------------