= 1.0.1 are `tlsv1.2`, `tlsv1.1` and `tlsv1`. * @param string|null $ciphers A string describing the ciphers available for use. See the `openssl ciphers` tool for more information. If `null`, the default set will be used. * @return int */ public function setTlsOptions($certReqs, $tlsVersion = null, $ciphers = null) {} /** * Configure the client for pre-shared-key based TLS support. Must be called before `connect`. Cannot be used in * conjunction with setTlsCertificates. * * @param string $psk The pre-shared key in hex format with no leading "0x". * @param string $identity The identity of this client. May be used as the username depending on server settings. * @param string|null $ciphers Optional. A string describing the ciphers available for use. See the `openssl ciphers` tool for more information. If `null`, the default set will be used. * @return int */ public function setTlsPSK($psk, $identity, $ciphers = null) {} /** * Set the client “last will and testament”, which will be sent on an unclean disconnection from the broker. * Must be called before `connect`. * * @param string $topic The topic on which to publish the will. * @param string $payload The data to send. * @param int $qos Optional. Default 0. Integer 0, 1, or 2 indicating the Quality of Service to be used. * @param bool $retain Optional. Default false. If true, the message will be retained. */ public function setWill($topic, $payload, $qos = 0, $retain = false) {} /** * Remove a previously-set will. No parameters. */ public function clearWill() {} /** * Control the behaviour of the client when it has unexpectedly disconnected in Client::loopForever(). * The default behaviour if this method is not used is to repeatedly attempt to reconnect with a delay of 1 second * until the connection succeeds. * * @param int $reconnectDelay Set delay between successive reconnection attempts. * @param int $exponentialDelay Set max delay between successive reconnection attempts when exponential backoff is enabled * @param bool $exponentialBackoff Pass `true` to enable exponential backoff */ public function setReconnectDelay($reconnectDelay, $exponentialDelay = 0, $exponentialBackoff = false) {} /** * Connect to an MQTT broker. * * @param string $host Hostname to connect to * @param int $port Optional. Port number to connect to. Defaults to 1883. * @param int $keepalive Optional. Number of sections after which the broker should PING the client if no messages have been received. * @param string|null $interface Optional. The address or hostname of a local interface to bind to for this connection. * @return int */ public function connect($host, $port = 1883, $keepalive = 60, $interface = null) {} /** * Disconnect from the broker. No parameters. */ public function disconnect() {} /** * Set the connect callback. This is called when the broker sends a CONNACK message in response to a connection. * * (int) $rc, (string) $message * function ($rc, $message) {} * * Response codes: * 0 = Success * 1 = Connection refused (unacceptable protocol version) * 2 = Connection refused (identifier rejected) * 3 = Connection refused (broker unavailable) * 4-255 = Reserved for future use * * @param callable $callback */ public function onConnect($callback) {} /** * Set the disconnect callback. This is called when the broker has received the DISCONNECT command and has * disconnected the client. * * (int) $rc * function ($rc) {} * * Response codes: * 0 = requested by client * <0 = indicates an unexpected disconnection. * * @param callable $callback */ public function onDisconnect($callback) {} /** * Set the logging callback. * * (int) $level, (string) $str * function ($level, $str) {} * * Log levels: * Client::LOG_DEBUG * Client::LOG_INFO * Client::LOG_NOTICE * Client::LOG_WARNING * Client::LOG_ERR * * @param callable $callback */ public function onLog($callback) {} /** * Set the subscribe callback. This is called when the broker responds to a subscription request. * * (int) $mid, (int) $qosCount * function ($mid, $qosCount) {} * * @param callable $callback */ public function onSubscribe($callback) {} /** * Set the unsubscribe callback. This is called when the broker responds to a unsubscribe request. * * (int) $mid * function ($mid) {} * * @param callable $callback */ public function onUnsubscribe($callback) {} /** * Set the message callback. This is called when a message is received from the broker. * * (object) $message * function (Mosquitto\Message $message) {} * * @param callable $callback */ public function onMessage($callback) {} /** * Set the publish callback. This is called when a message is published by the client itself. * * Warning: this may be called before the method publish returns the message id, so, you need to create a queue to * deal with the MID list. * * (int) $mid - the message id returned by `publish` * function ($mid) {} * * @param callable $callback */ public function onPublish($callback) {} /** * Set the number of QoS 1 and 2 messages that can be “in flight” at one time. An in flight message is part way * through its delivery flow. Attempts to send further messages with publish will result in the messages * being queued until the number of in flight messages reduces. * * Set to 0 for no maximum. * * @param int $maxInFlightMessages */ public function setMaxInFlightMessages($maxInFlightMessages) {} /** * Set the number of seconds to wait before retrying messages. This applies to publishing messages with QoS > 0. * May be called at any time. * * @param int $messageRetryPeriod The retry period */ public function setMessageRetry($messageRetryPeriod) {} /** * Publish a message on a given topic. * Return the message ID returned by the broker. Warning: the message ID is not unique. * * @param string $topic The topic to publish on * @param string $payload The message payload * @param int $qos Integer value 0, 1 or 2 indicating the QoS for this message * @param bool $retain If true, retain this message * @return int */ public function publish($topic, $payload, $qos = 0, $retain = false) {} /** * Subscribe to a topic. * Return the message ID of the subscription message, so this can be matched up in the `onSubscribe` callback. * * @param string $topic * @param int $qos * @return int */ public function subscribe($topic, $qos) {} /** * Unsubscribe from a topic. * Return the message ID of the subscription message, so this can be matched up in the `onUnsubscribe` callback. * * @param string $topic * @param int $qos * @return int */ public function unsubscribe($topic, $qos) {} /** * The main network loop for the client. You must call this frequently in order to keep communications between * the client and broker working. If incoming data is present it will then be processed. Outgoing commands, * from e.g. `publish`, are normally sent immediately that their function is called, but this is not always possible. * `loop` will also attempt to send any remaining outgoing messages, which also includes commands that are part * of the flow for messages with QoS > 0. * * @param int $timeout Optional. Number of milliseconds to wait for network activity. Pass 0 for instant timeout. */ public function loop($timeout = 1000) {} /** * Call loop() in an infinite blocking loop. Callbacks will be called as required. This will handle reconnecting * if the connection is lost. Call `disconnect` in a callback to disconnect and return from the loop. Alternatively, * call `exitLoop` to exit the loop without disconnecting. You will need to re-enter the loop again afterwards * to maintain the connection. * * @param int $timeout Optional. Number of milliseconds to wait for network activity. Pass 0 for instant timeout. */ public function loopForever($timeout = 1000) {} /** * Exit the `loopForever` event loop without disconnecting. You will need to re-enter the loop afterwards * in order to maintain the connection. */ public function exitLoop() {} } /** * @link https://mosquitto-php.readthedocs.io/en/latest/message.html */ class Message { /** @var string */ public $topic; /** @var string */ public $payload; /** @var int */ public $mid; /** @var int */ public $qos; /** @var bool */ public $retain; /** * Returns true if the supplied topic matches the supplied description, and otherwise false. * * @param string $topic The topic to match * @param string $subscription The subscription to match * @return bool */ public static function topicMatchesSub($topic, $subscription) {} /** * Tokenise a topic or subscription string into an array of strings representing the topic hierarchy. * * @param string $topic * @return array */ public static function tokeniseTopic($topic) {} } /** * @link https://mosquitto-php.readthedocs.io/en/latest/exception.html */ class Exception extends \Exception {}