====== 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 |