PHP 및 MQTT: 게시-구독 모델을 기반으로 애플리케이션 구축
소개:
사물 인터넷의 급속한 발전으로 인해 점점 더 많은 장치가 실시간으로 서로 통신해야 합니다. MQTT(Message Queuing Telemetry Transport)는 대역폭이 낮고 불안정한 네트워크 환경에서 효율적인 통신을 달성할 수 있는 경량 메시지 전송 프로토콜입니다. PHP 언어와 결합하면 MQTT를 사용하여 게시-구독 모델을 기반으로 애플리케이션을 구축할 수 있습니다. 이 기사에서는 PHP와 MQTT를 사용하여 간단한 게시자와 구독자를 만드는 방법을 소개합니다.
환경 준비:
시작하기 전에 PHP 및 MQTT 확장이 설치되어 있는지 확인해야 합니다. 다음 명령을 통해 설치할 수 있습니다:
composer require eclampsia89/php-mqtt
이 확장은 MQTT 브로커와 통신하는 기능을 제공합니다.
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
方法来断开连接。
创建发布者和订阅者:
现在,我们可以创建一个发布者和一个订阅者来进行实际的通信。下面是一个简单的示例。
<?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
이제 게시자와 구독자를 생성하여 실제 통신을 수행할 수 있습니다. 아래는 간단한 예입니다.
php publisher.php
publish
메소드를 사용하여 "topic"이라는 주제로 메시지를 게시합니다. 마지막으로 우리는 연결을 끊습니다. subscribe
메소드를 사용하여 주제가 "topic"인 메시지를 구독합니다. loop
메소드를 호출하면 에이전트로부터 메시지를 계속 기다리고 수신할 수 있습니다. php subscriber.php
위 내용은 PHP 및 MQTT: 게시-구독 패턴을 기반으로 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!