Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
MQTT - PHP
#8
Sprawdzilem z php8.3.1 (taka wersje mialem na dysku) na serwerze lokalnym i na mqtt.ats.pl. W obu przypadkach na standardowym porcie 1883 bez szyfrowania. Uruchamialem z konsoli "php plik.php" majac glowny plik i biblioteke phpMQTT.php w tym samym folderze.

Odrobinke zmodyfikowalem wczesniejszy skrypt. W kodzie zmienic wartosci $server, $username, $password, $prefix, $topic oraz $message_count. Opcjonalnie petle wysylajaca testowe wiadomosci mozna zamienic na wielokrotne wywolanie $mqtt->publish, w dzialaniu nie ma roznicy. Biblioteke pobralem:
Cytat:git clone https://github.com/bluerhinos/phpMQTT.git

Po wywolaniu skryptu pojawialy sie jedna lub wiecej wiadomosci na serwerze (zaleznie od wartosci $message_count).

Kod PHP:
<?php

require('phpMQTT.php');

$server 'ADRES_IP_LUB_DOMENA_SERWERA';     // change if necessary
$port 1883;                     // change if necessary
$username 'NAZWA_KLIENTA_MQTT';                   // set your username
$password 'HASLO_KLIENTA_MQTT';                   // set your password
$prefix 'PREFIX_TEMATOW_MQTT'// Prefix do tematow MQTT
$topic 'FRAGMENT_TEMATU_MQTT'// Bazowy temat ktory bedzie dodany do $prefix, tak ze finalny temat to $prefix/$topic(numer jesli $message_count > 1)
$message_count 1// Ilosc wiadomosci do wyslania "na raz" o losowej tresci z tematami zlozonymi z $prefix i $topic
// bin2hex... generuje losowy string, tak by client_id byly unikalny. Nalezy przy tym pamietac ze taki klient powinien laczyc sie z ustawiona flaga clean_session (pierwszy parametr w $mqtt->connect).
$client_id 'phpMQTT-' bin2hex(random_bytes(8)); // make sure this is unique for connecting to sever - you could use uniqid()

$mqtt = new Bluerhinos\phpMQTT($server$port$client_id);

if (
$mqtt->connect(trueNULL$username$password)) {
    // $mqtt->publish przyjmuje parametry: temat, tresc wiadomosci, QoS, flaga Retain (chyba :P)
    if ($message_count <= 1) {
      $mqtt->publish($prefix.'/'.$topicstrval(random_int(0,20)), 0false);
    } else {
      for ($i 1$i <= $message_count$i++) {
        $mqtt->publish($prefix.'/'.$topic.strval($i), strval(random_int(0,20)), 0false);
      }
    }
    $mqtt->close();
} else {
    echo "Time out!\n";

Odpowiedz


Wiadomości w tym wątku
MQTT - PHP - przez stAch - 01-08-2024, 11:43 PM
RE: MQTT - PHP - przez wilkxt - 01-09-2024, 10:45 AM
RE: MQTT - PHP - przez stAch - 01-09-2024, 02:51 PM
RE: MQTT - PHP - przez stAch - 01-11-2024, 10:37 PM
RE: MQTT - PHP - przez tonymony - 01-12-2024, 12:37 PM
RE: MQTT - PHP - przez stAch - 01-12-2024, 11:18 PM
RE: MQTT - PHP - przez stAch - 12-08-2024, 08:05 PM
RE: MQTT - PHP - przez tonymony - 12-18-2024, 04:04 PM

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości