>  기사  >  백엔드 개발  >  PHP 및 MQTT: 게시-구독 패턴을 기반으로 애플리케이션 구축

PHP 및 MQTT: 게시-구독 패턴을 기반으로 애플리케이션 구축

PHPz
PHPz원래의
2023-07-09 12:31:39997검색

PHP 및 MQTT: 게시-구독 모델을 기반으로 애플리케이션 구축

소개:
사물 인터넷의 급속한 발전으로 인해 점점 더 많은 장치가 실시간으로 서로 통신해야 합니다. MQTT(Message Queuing Telemetry Transport)는 대역폭이 낮고 불안정한 네트워크 환경에서 효율적인 통신을 달성할 수 있는 경량 메시지 전송 프로토콜입니다. PHP 언어와 결합하면 MQTT를 사용하여 게시-구독 모델을 기반으로 애플리케이션을 구축할 수 있습니다. 이 기사에서는 PHP와 MQTT를 사용하여 간단한 게시자와 구독자를 만드는 방법을 소개합니다.

  1. 환경 준비:
    시작하기 전에 PHP 및 MQTT 확장이 설치되어 있는지 확인해야 합니다. 다음 명령을 통해 설치할 수 있습니다:

    composer require eclampsia89/php-mqtt

    이 확장은 MQTT 브로커와 통신하는 기능을 제공합니다.

  2. MQTT 클라이언트 구축:
    먼저 연결하고 통신하려면 MQTT 클라이언트를 생성해야 합니다. 다음은 간단한 MQTT 클래스입니다.

    <?php
    require 'vendor/autoload.php';
    
    use eclampsia89MQTTProtocol;
    use eclampsia89MQTTMessageType;
    
    class MQTTClient
    {
     private $client;
    
     public function __construct($clientId, $broker, $port)
     {
         $this->client = new Protocol($broker, $port, $clientId);
     }
    
     public function connect()
     {
         $this->client->connect();
     }
    
     public function subscribe($topic)
     {
         $this->client->subscribe($topic);
     }
    
     public function publish($topic, $message)
     {
         $this->client->publish($topic, $message);
     }
    
     public function disconnect()
     {
         $this->client->disconnect();
     }
    
     public function loop()
     {
         $this->client->loop();
     }
    }

    이 수업에서는 eclampsia89MQTTProtocol을 사용하여 브로커에 연결하고 connect 메서드를 사용하여 연결합니다. subscribe 메소드를 사용하여 주제를 구독하고 publish 메소드를 사용하여 메시지를 게시할 수 있습니다. 마지막으로 disconnect 메소드를 사용하여 연결을 끊습니다. eclampsia89MQTTProtocol来连接代理,并使用connect方法进行连接。我们可以使用subscribe方法来订阅主题,使用publish方法来发布消息。最后,我们使用disconnect方法来断开连接。

  3. 创建发布者和订阅者:
    现在,我们可以创建一个发布者和一个订阅者来进行实际的通信。下面是一个简单的示例。

    <?php
    require 'MQTTClient.php';
    
    // 创建发布者
    $publisher = new MQTTClient('publisher', 'mqtt.broker.com', 1883);
    $publisher->connect();
    
    // 发布消息
    $publisher->publish('topic', 'Hello, subscribers!');
    
    // 断开连接
    $publisher->disconnect();
    
    // 创建订阅者
    $subscriber = new MQTTClient('subscriber', 'mqtt.broker.com', 1883);
    $subscriber->connect();
    
    // 订阅主题
    $subscriber->subscribe('topic');
    
    // 循环等待消息
    while (true) {
     $subscriber->loop();
    }
    
    // 断开连接
    $subscriber->disconnect();

    在这个示例中,我们创建了一个名为“publisher”的发布者,并连接到MQTT代理。然后,我们使用publish方法发布了一个消息,主题为“topic”。最后,我们断开连接。

接下来,我们创建了一个名为“subscriber”的订阅者,并连接到MQTT代理。然后,我们使用subscribe方法订阅了主题为“topic”的消息。通过调用loop

  1. Creating Publisher and Subscribers:

    이제 게시자와 구독자를 생성하여 실제 통신을 수행할 수 있습니다. 아래는 간단한 예입니다.

    php publisher.php

    이 예에서는 "publisher"라는 게시자를 만들고 MQTT 브로커에 연결합니다. 그런 다음 publish 메소드를 사용하여 "topic"이라는 주제로 메시지를 게시합니다. 마지막으로 우리는 연결을 끊습니다.

다음으로 "subscriber"라는 구독자를 생성하고 MQTT 브로커에 연결합니다. 그런 다음 subscribe 메소드를 사용하여 주제가 "topic"인 메시지를 구독합니다. loop 메소드를 호출하면 에이전트로부터 메시지를 계속 기다리고 수신할 수 있습니다.


🎜예제 실행: 🎜이제 이 예를 실행하여 게시자와 구독자가 제대로 작동하는지 테스트할 수 있습니다. 명령줄에서 다음 명령을 실행할 수 있습니다. 🎜
php subscriber.php
rrreee🎜 구독자의 출력을 보면 게시자로부터 메시지를 받았음을 알 수 있습니다. 🎜🎜🎜🎜결론: 🎜PHP와 MQTT를 사용하면 게시-구독 패턴을 기반으로 애플리케이션을 쉽게 구축할 수 있습니다. 이 기사에서는 PHP와 MQTT 확장을 사용하여 실시간 통신을 위한 간단한 게시자 및 구독자를 만드는 방법을 보여주었습니다. 이 글이 PHP와 MQTT를 이해하고 적용하는데 도움이 되기를 바랍니다. 🎜

위 내용은 PHP 및 MQTT: 게시-구독 패턴을 기반으로 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.