std.net.mqtt

MQTT 3.1.1 (ISO/IEC 20922) ist ein schlankes Publish/Subscribe-Protokoll, das speziell für IoT- und M2M-Kommunikation mit geringer Bandbreite und instabilen Verbindungen entwickelt wurde. Clients verbinden sich mit einem Broker und tauschen Nachrichten über Topics aus. Die Unit unterstützt QoS-Stufen 0 (at most once), 1 (at least once) und 2 (exactly once) sowie alle MQTT-Kontrollpakete.

Einsatzbereiche sind Sensornetze, Smart-Home-Systeme, Telemetrie-Plattformen, industrielle Steuerungen (IIoT) und Edge-Computing-Umgebungen mit vielen leichtgewichtigen Clients.

import std.net.mqtt;

var conn: MQTTConn := MQTTConnect("broker.example.com", 1883, "sensor-01");
MQTTPublish(conn, "sensors/temperature", "23.4", 4, 0);
MQTTDisconnect(conn);


Imports

  • std.net.socket
  • std.net.dns
  • std.net.types

Konstanten

Name Typ Wert Sichtbarkeit
MQTT_PORT int64 1883 pub
MQTTS_PORT int64 8883 pub
MQTT_PKT_CONNECT int64 1 pub
MQTT_PKT_CONNACK int64 2 pub
MQTT_PKT_PUBLISH int64 3 pub
MQTT_PKT_PUBACK int64 4 pub
MQTT_PKT_PUBREC int64 5 pub
MQTT_PKT_PUBREL int64 6 pub
MQTT_PKT_PUBCOMP int64 7 pub
MQTT_PKT_SUBSCRIBE int64 8 pub
MQTT_PKT_SUBACK int64 9 pub
MQTT_PKT_UNSUBSCRIBE int64 10 pub
MQTT_PKT_UNSUBACK int64 11 pub
MQTT_PKT_PINGREQ int64 12 pub
MQTT_PKT_PINGRESP int64 13 pub
MQTT_PKT_DISCONNECT int64 14 pub
MQTT_QOS_AT_MOST_ONCE int64 0 pub
MQTT_QOS_AT_LEAST_ONCE int64 1 pub
MQTT_QOS_EXACTLY_ONCE int64 2 pub
MQTT_RC_ACCEPTED int64 0 pub
MQTT_RC_UNACCEPTABLE_PROTOCOL int64 1 pub
MQTT_RC_IDENTIFIER_REJECTED int64 2 pub
MQTT_RC_SERVER_UNAVAILABLE int64 3 pub
MQTT_RC_BAD_USERNAME_PASSWORD int64 4 pub
MQTT_RC_NOT_AUTHORIZED int64 5 pub

Typen

MQTTConn (struct)

Feld Typ

MQTTPacket (struct)

Feld Typ

Funktionen

Signatur Sichtbarkeit Beschreibung
MQTTStrLen(s: int64): int64 pub Länge eines C-Strings berechnen
MQTTWriteRemainingLen(buf: int64, pos: int64, length: int64): int64 pub Variable Restlänge in Puffer schreiben
MQTTReadRemainingLen(buf: int64, pos: int64): int64 pub Variable Restlänge aus Puffer lesen
MQTTWriteString(buf: int64, pos: int64, str: int64, len: int64): int64 pub UTF-8-String mit Länge in Puffer schreiben
MQTTReadString(buf: int64, pos: int64): int64 pub UTF-8-String aus Puffer lesen
MQTTNextPacketId(): int64 pub Nächste eindeutige Paket-ID erzeugen
MQTTBuildConnect(clientId: int64, keepAlive: int64, username: int64, password: int64): int64 pub CONNECT-Paket aufbauen
MQTTPublish(topic: int64, payload: int64, payloadLen: int64, qos: int64, retain: int64): int64 pub PUBLISH-Paket aufbauen
MQTTBuildSubscribe(topic: int64, qos: int64): int64 pub SUBSCRIBE-Paket aufbauen
MQTTBuildUnsubscribe(topic: int64): int64 pub UNSUBSCRIBE-Paket aufbauen
MQTTBuildPingReq(): int64 pub PINGREQ-Paket aufbauen
MQTTBuildDisconnect(): int64 pub DISCONNECT-Paket aufbauen
MQTTSend(conn: TCPConn, pkt: int64, pktLen: int64): int64 pub MQTT-Paket über TCP senden
MQTTRecv(conn: TCPConn): int64 pub MQTT-Paket über TCP empfangen
MQTTParseConnack(buf: int64): int64 pub CONNACK-Antwort parsen und prüfen
MQTTParsePublish(buf: int64): MQTTPacket pub PUBLISH-Paket parsen
MQTTConnect(host: int64, port: int64, clientId: int64): MQTTConn pub Verbindung zu Broker aufbauen
MQTTSubscribe(mqtt: MQTTConn, topic: int64, qos: int64): int64 pub Topic beim Broker abonnieren
MQTTPublishMsg(mqtt: MQTTConn, topic: int64, payload: int64, payloadLen: int64, qos: int64): int64 pub Nachricht auf Topic veröffentlichen
MQTTReceive(mqtt: MQTTConn): MQTTPacket pub Nächstes eingehendes Paket empfangen
MQTTSendPing(mqtt: MQTTConn): int64 pub Keep-Alive-Ping an Broker senden
MQTTDisconnect(mqtt: MQTTConn) pub Verbindung zum Broker trennen
MQTTPacketFree(pkt: MQTTPacket) pub Paket-Speicher freigeben