>  기사  >  백엔드 개발  >  MQTT 프로토콜을 위한 PHP 구현 솔루션 구축 및 배포 가이드

MQTT 프로토콜을 위한 PHP 구현 솔루션 구축 및 배포 가이드

王林
王林원래의
2023-07-10 23:55:382603검색

MQTT(Message Queuing Telemetry Transport)는 IoT 장치 간 통신에 널리 사용되는 경량 메시지 전송 프로토콜입니다. 널리 사용되는 서버 스크립팅 언어인 PHP에는 MQTT 프로토콜 구현을 위한 많은 솔루션도 있습니다. 이 기사에서는 PHP 기반 MQTT 프로토콜 구현 솔루션을 구축 및 배포하는 방법을 소개하고 관련 코드 예제를 제공합니다.

1. 준비

빌드 및 배포를 시작하기 전에 PHP 및 관련 확장이 서버에 설치되어 있는지 확인해야 합니다. 이 기사에서 사용된 확장은 일련의 편리한 기능을 제공하는 오픈 소스 MQTT 클라이언트 라이브러리인 phpMQTT입니다.

먼저 다음 명령을 사용하여 phpMQTT 확장을 설치합니다:

composer require bluerhinos/phpmqtt

2. MQTT 브로커에 연결합니다.

phpMQTT를 사용하여 MQTT 브로커와 연결을 설정하려면 브로커의 주소, 포트, 사용자 이름 및 비밀번호를 제공해야 합니다. . 다음은 예시입니다.

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   // 连接成功
} else {
   // 连接失败
}

$mqtt->close();
?>

phpMQTT 생성자에는 MQTT 브로커의 주소(mqtt.example.com)와 포트 번호(1883)가 전달됩니다. 동시에 클라이언트 ID도 전달되며 이를 직접 수정할 수 있습니다. phpMQTT构造函数中,传入了MQTT代理的地址(mqtt.example.com)和端口号(1883)。同时,还传入了一个客户端ID,您可以自行修改。

接下来,使用connect函数连接到MQTT代理。该函数的第一个参数指定了是否启用MQTT代理的持久化会话(true表示启用),第二个参数是代理的SSL证书路径,第三个和第四个参数是代理的用户名和密码。如果连接成功,将执行连接成功的代码块。否则,将执行连接失败的代码块。

最后,在需要断开连接的地方,使用close函数关闭MQTT连接。

3. 发布和订阅消息

发布和订阅消息是MQTT的核心功能之一。在phpMQTT中,可以使用publish函数发布消息,使用subscribe函数订阅消息。

以下是一个发布消息的示例:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   $mqtt->publish("topic", "message");
} else {
   // 连接失败
}

$mqtt->close();
?>

在上述示例中,调用了publish函数,将消息发布到名为"topic"的主题上。

以下是一个订阅消息的示例:

<?php
require("phpMQTT.php");

$mqtt = new phpMQTT("mqtt.example.com", 1883, "client_id");

if ($mqtt->connect(true, NULL, "username", "password")) {
   $topics = array("topic1", "topic2");
   $mqtt->subscribe($topics);
   while ($mqtt->proc()) {
      // 处理订阅的消息
   }
} else {
   // 连接失败
}

$mqtt->close();
?>

在上述示例中,调用subscribe函数,传入一个主题数组,即可订阅多个主题的消息。然后使用一个循环,调用proc函数,循环监听订阅的消息。在proc

다음으로 connect 함수를 사용하여 MQTT 브로커에 연결합니다. 이 함수의 첫 번째 매개변수는 MQTT 브로커의 영구 세션을 활성화할지 여부를 지정합니다(true는 활성화됨을 의미함). 두 번째 매개변수는 브로커의 SSL 인증서 경로이며 세 번째와 네 번째 매개변수는 브로커의 사용자 이름과 비밀번호입니다. 연결이 성공하면 연결 성공 코드 블록이 실행됩니다. 그렇지 않으면 연결에 실패한 코드 블록이 실행됩니다.

마지막으로 연결을 끊어야 하는 MQTT 연결을 닫으려면 close 함수를 사용하세요.

3. 메시지 게시 및 구독

메시지 게시 및 구독은 MQTT의 핵심 기능 중 하나입니다. phpMQTT에서는 publish 함수를 사용하여 메시지를 게시하고 subscribe 함수를 사용하여 메시지를 구독할 수 있습니다. 🎜🎜다음은 메시지 게시의 예입니다. 🎜rrreee🎜위의 예에서는 "topic"이라는 주제에 메시지를 게시하기 위해 publish 함수가 호출됩니다. 🎜🎜다음은 메시지 구독의 예입니다. 🎜rrreee🎜위의 예에서 subscribe 함수를 호출하고 주제 배열을 전달하여 여러 주제의 메시지를 구독합니다. 그런 다음 루프를 사용하여 proc 함수를 호출하여 루프에서 구독된 메시지를 수신합니다. proc 함수에서는 수신된 메시지를 처리할 수 있습니다. 🎜🎜4. 요약🎜🎜이 글에서는 PHP 기반 MQTT 프로토콜 구현 솔루션을 소개하고, phpMQTT를 MQTT 클라이언트 라이브러리로 사용하며, 몇 가지 코드 예제를 제공합니다. 이 기사를 읽고 샘플 코드를 따르면 MQTT 프로토콜의 PHP 구현을 빠르게 빌드하고 배포할 수 있습니다. 물론 MQTT 프로토콜의 다른 PHP 구현 중에서 선택할 수 있으며 필요에 따라 가장 적합한 도구를 선택할 수 있습니다. 🎜🎜이 기사가 도움이 되기를 바라며, 성공적인 설정 및 배포를 기원합니다! 🎜

위 내용은 MQTT 프로토콜을 위한 PHP 구현 솔루션 구축 및 배포 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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