Exemplo n.º 1
1
<?php

require __DIR__ . '/../test.inc.php';
use sskaje\mqtt\MQTT;
use sskaje\mqtt\Debug;
use sskaje\mqtt\MessageHandler;
$mqtt = new MQTT($MQTT_SERVER);
$context = stream_context_create();
$mqtt->setSocketContext($context);
Debug::Enable();
//$mqtt->setAuth('sskaje', '123123');
$mqtt->setKeepalive(3600);
$connected = $mqtt->connect();
if (!$connected) {
    die("Not connected\n");
}
$topics['sskaje/#'] = 2;
$mqtt->subscribe($topics);
#$mqtt->unsubscribe(array_keys($topics));
class MySubscribeCallback extends MessageHandler
{
    public function publish($mqtt, sskaje\mqtt\Message\PUBLISH $publish_object)
    {
        printf("I got a message:(msgid=%d, QoS=%d, dup=%d, topic=%s) %s\n", $publish_object->getMsgID(), $publish_object->getQos(), $publish_object->getDup(), $publish_object->getTopic(), $publish_object->getMessage());
    }
}
$callback = new MySubscribeCallback();
$mqtt->setHandler($callback);
$mqtt->loop();
Exemplo n.º 2
0
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