use sskaje\mqtt\MessageHandler; $mqtt = new MQTT($MQTT_SERVER); # Set Socket Context $context = stream_context_create(); $mqtt->setSocketContext($context); # Set Connect Will $mqtt->setWill('sskaje/will', 'Ciao~', 0, 0); Debug::Enable(); Debug::SetLogPriority(Debug::NOTICE); //$mqtt->setAuth('sskaje', '123123'); $connected = $mqtt->connect(); if (!$connected) { die("Not connected\n"); } $msg = str_repeat('1234567890', 1); # Set Retry Timeout for Publish and its following commands $mqtt->setRetryTimeout(5); Debug::Log(Debug::INFO, "QoS=1"); $myhandler = new \MyPublishHandler(); $c = 0; do { # mosquitto_sub -t 'sskaje/#' -q 1 -h test.mosquitto.org $r = $mqtt->publish_async('sskaje/test', $msg, 1, 0); $myhandler->waitQueue[$r['msgid']] = $r; echo "======== QoS=1, Count={$c}\n"; #sleep(1); } while (++$c < 100); $mqtt->setHandler($myhandler); # TODO: EXIT? $mqtt->loop(); # EOF
public function suback(MQTT $mqtt, \sskaje\mqtt\Message\SUBACK $suback_object) { global $client_id; # sign up $mqtt->publish_async('sskaje/bot/login', $client_id, 1); }
ini_set('error_log', __DIR__ . '/../../logs/examples_publish.log'); use sskaje\mqtt\MQTT; use sskaje\mqtt\Debug; $mqtt = new MQTT($MQTT_SERVER); # Set Socket Context $context = stream_context_create(); $mqtt->setSocketContext($context); # Set Connect Will $mqtt->setWill('sskaje/will', 'Ciao~', 0, 0); Debug::Enable(); Debug::SetLogPriority(Debug::NOTICE); //$mqtt->setAuth('sskaje', '123123'); $connected = $mqtt->connect(); if (!$connected) { die("Not connected\n"); } # Set Retry Timeout for Publish and its following commands $mqtt->setRetryTimeout(5); $msg = str_repeat('1234567890', 1); $myhandler = new MyPublishHandler(); Debug::Log(Debug::INFO, "QoS=2"); $c = 0; do { # mosquitto_sub -t 'sskaje/#' -q 1 -h test.mosquitto.org $r = $mqtt->publish_async('sskaje/test', $msg, 2, 0, $msgid); $myhandler->waitQueue[$r['msgid']] = $r; echo "======== QoS=2, Count={$c}, msgid={$msgid} \n"; } while (++$c < 100); $mqtt->setHandler($myhandler); $mqtt->loop(); # EOF