Software /
code /
prosody-modules
Diff
mod_pubsub_mqtt/README.md @ 6211:750d64c47ec6 draft default tip
Merge
author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
---|---|
date | Tue, 18 Mar 2025 00:31:36 +0700 |
parent | 6003:fe081789f7b5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_pubsub_mqtt/README.md Tue Mar 18 00:31:36 2025 +0700 @@ -0,0 +1,68 @@ +--- +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 + ------- --------------