workerman/mqtt

MQTT는 클라이언트-서버 아키텍처를 기반으로 하는 발행/구독 모델의 메시지 전송 프로토콜로, 현재 사물인터넷(IoT)의 중요한 구성 요소로 자리잡았습니다. 이 프로토콜의 설계 원칙은 가볍고 개방적이며 간단하고 표준화되어 있으며 구현하기 쉬운 것이 특징입니다. 이러한 특성으로 많은 시나리오에 적합하며 특히 기계 간 통신(M2M) 및 사물인터넷(IoT)과 같은 제한된 환경에 특히 적합합니다.

workerman\mqtt는 workerman을 기반으로 하는 비동기 MQTT 클라이언트 라이브러리로, MQTT 프로토콜 메시지를 수신하거나 전송하는 데 사용됩니다. QoS 0, QoS 1, QoS 2를 지원하며, MQTT 3.1, 3.1.1, 5 버전을 지원합니다.

프로젝트 주소

https://github.com/walkor/mqtt

설치

composer require workerman/mqtt

예시

subscribe.php

<?php
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker();
$worker->onWorkerStart = function(){
    $mqtt = new Workerman\Mqtt\Client('mqtt://test.mosquitto.org:1883');
    $mqtt->onConnect = function($mqtt) {
        $mqtt->subscribe('test');
    };
    $mqtt->onMessage = function($topic, $content){
        var_dump($topic, $content);
    };
    $mqtt->connect();
};
Worker::runAll();

명령 프롬프트에서 php subscribe.php start를 실행하여 시작합니다.

publish.php

<?php
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker();
$worker->onWorkerStart = function(){
    $mqtt = new Workerman\Mqtt\Client('mqtt://test.mosquitto.org:1883');
    $mqtt->onConnect = function($mqtt) {
       $mqtt->publish('test', 'hello workerman mqtt');
    };
    $mqtt->connect();
};
Worker::runAll();

명령 프롬프트에서 php publish.php start를 실행하여 시작합니다.

workerman\mqtt\Client 인터페이스