rzag писал(а): Вс мар 31, 2019 8:11 pm
Aven писал(а): Вс мар 31, 2019 8:05 pm
для Publish используется отдельное подключение, а не существующее которое прослушивает подписки
Спасибо, но все равно не пойму, зачем создавать два подключения, отдельно для публикации и отдельно для подписки.
Они не создают конфликт для брокера ?
Как раньше писал - рвется соеденение, сразу после публикации - это особенности библиотеки phpmqtt ?
Вообщем не выдержал, решил протестировать библиотеку phpMQTT с примерами из GITа.
Напоминаю, что проблема в том, что mjd разрывает соеденение, которое слушает мои топики с других устройств при этом в момент переподключения теряется инфо для mjd:
Client m (#5ca260cdbfc9f) has exceeded timeout, disconnecting.
1554154305: Socket error on client m (#5ca260cdbfc9f), disconnecting.
Запускаю скрипт подписки с примера из GITa - и ни одного разрыва - все четко принимается!!!!!
Получается, что зря грешил на библиотеку.
Выходит проблема на стороне mjd
Сам скрипт:
<?php
require("/var/www/lib/mqtt/phpMQTT.php");
$server = "192.168.1.40"; // change if necessary
$port = 1883; // change if necessary
$username = ""; // set your username
$password = ""; // set your password
$client_id = "phpMQTT-subscriber"; // make sure this is unique for connecting t$
$mqtt = new phpMQTT($server, $port, $client_id);
if(!$mqtt->connect(true, NULL, $username, $password)) {
exit(1);
}
$topics['#'] = array("qos" => 0, "function" => "procmsg");
$mqtt->subscribe($topics, 0);
while($mqtt->proc()){
}
$mqtt->close();
function procmsg($topic, $msg){
echo "Msg Recieved: " . date("r") . "\n";
echo "Topic: {$topic}\n\n";
echo "\t$msg\n\n";
}
?>