mqtt를 사용하는 thinkphp 정보
다음은 thinkphpframework 튜토리얼 칼럼에서 mqtt를 이용한 thinkphp에 대한 소개입니다. 필요한 친구들에게 도움이 되었으면 좋겠습니다!
최근에 mqtt를 사용하여 프로젝트를 진행하고 있었는데 인터넷에서 많은 예제를 보았지만 잘 이해하지 못했습니다(아마 제가 멍청해서 그런 것 같습니다). 나중에 잊어버리지 않도록 해결해서 여기에 기록했습니다. . 제가 능숙하지 않아서 몇개 봤는데 혹시 실수가 있으면 메시지를 남겨서 조언을 주시면 됩니다
첫 번째 준비는 환경과 프레임워크를 사용하는 것인데 거의 비슷합니다. 동일
환경 contOs7을 사용하고 있으며 모기 환경에서 사용하는 mqtt를 설치했습니다. 설치 튜토리얼은 여기 있습니다. (설정은 꼭 기억해주세요.) 비밀번호, 권한이 아직 이루어지지 않아 이 글은 작성되지 않았습니다.
Framework 저는 TP5.0 프레임워크를 사용하고 있습니다
다음 단계는 개발 과정입니다
1 MQTT 클래스를 다운받아서 프로젝트 폴더의 루트 디렉토리에 extend 로 넣어두는데, 원래는 csdn 리소스에 넣어서 그렇게 하려고 했습니다. 누구나 열심히 일하면 1점을 얻을 수 있습니다. 의외로 기본값은 5포인트입니다. Git에 가기가 너무 귀찮고 포인트가 너무 많으면 리소스 주소를 클릭하고 모든 사람에게 Git 주소를 제공하세요. https://github.com/bluerhinos /phpMQTT,
2 그런 다음 MQtt 클래스를 소개합니다.
다음은 MQTT 정보 Qos 수준과 관련하여 관심이 있는 경우
<?php namespace app\index\model; use Bluerhinos\phpMQTT; use think\Model; class Mqtt extends Model { /** * MQTT发送信息 * @param $id 发布消息的ID 订阅ID需要与发布ID一致才能接受信息 topic为发布给全部 * @param $info 发布的信息 */ public function pus($id,$info){ //使用require_once 引入 MQTT 的类 require_once (EXTEND_PATH.'/phpMQTT-master/phpMQTT.php'); $host = ""; // change if necessary IP $port = 1883; // change if necessary 端口默认1883 $username = ""; // set your username 用户名 $password = ""; // set your password 密码 $message = $info; //要发送的消息 //phpMQTT有四个参数:主机,端口,客户端id,证书。官网这里的案例没写证书,请参考phpMQT类 //没有证书的时候只能连接1883端口,不能连接8883端口。 //第三个参数为客户端ID 不可重复 $mqtt = new phpMQTT($host, $port, "ClientID" . rand()); //连接 if ($mqtt->connect(true, NULL, $username, $password)) { //发送信息 第三个参数为Qos服务质量等级 //Qos0 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息 //Qos1 发送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK。在Qos1情况下,Broker可能接受到重复消息 //Qos2 Qos2使用两阶段确认来保证消息的不丢失和不重复。在Qos2情况下,Broker肯定会收到消息,且只收到一次 $mqtt->publish($id, $message, 0); $mqtt->close(); //关闭 } else { echo "Fail or time out<br />"; } } /** * 要使用命令行运行此方法!!! * think5.0 运行方法为 cd到Public 目录 然后 php index.php 模块/控制器/方法 * 该类主要为订阅,建议订阅代码和发布代码不要写在同一个类中,避免修改造成不必要的误改。 * 每次更新该类后需要重启mqtt订阅,否则新的改动不会生效。 * 请在相应的位置放入phpMQTT的库 * 库代码:https://github.com/bluerhinos/phpMQTT/blob/master/phpMQTT.php * 类库使用的时候注意命名空间,类名称命名要和thinkphp的保持一致,不然会报错 */ public function sub(){ require_once (EXTEND_PATH.'/phpMQTT-master/phpMQTT.php'); $server = ""; // change if necessary 服务器IP $port = 1883; // change if necessary 端口 一般是1883 $username = ""; // set your username mosquitto设置的用户名 $password = ""; // set your password mosquitto设置的密码 $client_id = "clientx9293670xxctr".rand(1213333123,123123333); //你的连接客户端id $mqtt = new phpMQTT($server, $port, $client_id); //进行连接 if(!$mqtt->connect(true, NULL, $username, $password)) { exit('error'); //连接失败 } else { echo "success"; //连接成功 } //topics["topic"] 为接受的主题名 需要和发送的主题名一致 否则会订阅不到 //订阅信息 Qos为信息登记,需要和发送的等级一致 $topics["topic"] = array("qos" => 0, "function" =>array($this,"onMessage")); $mqtt->subscribe($topics, 0); //死循环监听 while($mqtt->proc()){ } $mqtt->close(); } /** * 在此处接MQtt的信息 进行业务处理 * @param $topic * @param $msg */ function onMessage($topic,$msg){ $msg = json_decode($msg,true); //我把数据传递到了另一个方法进行处理 可以在处理完逻辑业务之后 再次调用发布方法 去给订阅方发布消息 $this->index($msg); } }
명령으로 실행하는 것을 기억하세요. thinkphp 실행 예시의 경우 먼저 프로젝트의 public 디렉터리로 이동한 다음 php index.php module/controller/method
을 실행하고 실행 후 성공을 반환합니다. mqtt.fx를 사용하시면 됩니다.소프트웨어 주소는 http://www.jensd.de/apps/mqttfx/입니다. 제가 사용하는 것은 1.7.1 입니다. 클릭하시면 아래 윈도우 링크가 있는데 클릭하시면 다운로드가 됩니다. 사용하려면
구성 및 사용하세요
. 소프트웨어를 열면 인터페이스는 아래와 같습니다
그런 다음 연결 편집
을 선택하고 해당 프로필 이름, 브로커 주소 및 브로커 포트(수정 시 기본값은 1883), 생성 버튼을 클릭하면 클라이언트 ID가 자동 생성됩니다. 편집 후 저장을 클릭하여 편집 인터페이스를 종료합니다.
그런 다음 기본 인터페이스의 드롭다운 상자로 이동하여 방금 구성한 프로필 이름(172.16.0.121)을 선택한 다음 연결 버튼을 클릭하여 서비스에 연결합니다. 연결에 성공하면 구독 옵션을 클릭하고 아래 드롭다운 상자에서 주제를 선택한 다음(또는 i like mqtt와 같이 직접 주제를 생성) 구독 버튼을 클릭하세요.
게시 옵션으로 돌아가서 드롭다운 상자에서 주제를 선택하세요(또는 구독 옵션에서와 동일한 주제를 만드세요). 이제 아래 입력 영역에 보내려는 메시지를 작성할 수 있습니다(예: wo ai mqtt, 중국어는 구독자의 메시지 표시에서 왜곡됩니다). 여기 메시지는 여러 형식을 지원하고 게시 버튼을 클릭합니다.
마지막으로 구독 옵션으로 돌아가서 메시지가 성공적으로 수신되었는지 확인하세요. 그림과 같이 게시자(wo ai mqtt)가 보낸 메시지가 성공적으로 수신되었습니다.
해당 메시지 디코더를 선택할 수도 있습니다(텍스트 형식, JSON 형식, Base64 인코딩, 16진수 인코딩, Sparkplug 인코딩)
위 내용은 mqtt를 사용하는 thinkphp 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











ThinkPHP 프로젝트를 실행하려면 다음이 필요합니다: Composer를 설치하고, 프로젝트 디렉터리를 입력하고 php bin/console을 실행하고, 시작 페이지를 보려면 http://localhost:8000을 방문하세요.

ThinkPHP에는 다양한 PHP 버전용으로 설계된 여러 버전이 있습니다. 메이저 버전에는 3.2, 5.0, 5.1, 6.0이 포함되며, 마이너 버전은 버그를 수정하고 새로운 기능을 제공하는 데 사용됩니다. 최신 안정 버전은 ThinkPHP 6.0.16입니다. 버전을 선택할 때 PHP 버전, 기능 요구 사항 및 커뮤니티 지원을 고려하십시오. 최상의 성능과 지원을 위해서는 최신 안정 버전을 사용하는 것이 좋습니다.

ThinkPHP Framework를 로컬에서 실행하는 단계: ThinkPHP Framework를 로컬 디렉터리에 다운로드하고 압축을 풉니다. ThinkPHP 루트 디렉터리를 가리키는 가상 호스트(선택 사항)를 만듭니다. 데이터베이스 연결 매개변수를 구성합니다. 웹 서버를 시작합니다. ThinkPHP 애플리케이션을 초기화합니다. ThinkPHP 애플리케이션 URL에 접속하여 실행하세요.

MQTT(MessageQueuingTelemetryTransport)는 IoT 장치 간 통신에 일반적으로 사용되는 경량 메시지 전송 프로토콜입니다. PHP는 MQTT 클라이언트를 개발하는 데 사용할 수 있는 일반적으로 사용되는 서버측 프로그래밍 언어입니다. 이 기사에서는 PHP를 사용하여 MQTT 클라이언트를 개발하는 방법을 소개하고 다음 내용을 포함합니다. MQTT 프로토콜의 기본 개념 PHPMQTT 클라이언트 라이브러리의 선택 및 사용 예: PHPMQTT 클라이언트를 사용하여 게시 및

Laravel과 ThinkPHP 프레임워크의 성능 비교: ThinkPHP는 일반적으로 최적화 및 캐싱에 중점을 두고 Laravel보다 성능이 좋습니다. Laravel은 잘 작동하지만 복잡한 애플리케이션의 경우 ThinkPHP가 더 적합할 수 있습니다.

"개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법" 인터넷 기술의 급속한 발전으로 인해 웹 응용 프로그램은 많은 수의 동시 요청과 복잡한 비즈니스 논리를 처리하기 위한 요구 사항이 점점 더 높아졌습니다. 시스템 성능과 사용자 경험을 향상시키기 위해 개발자는 이메일 보내기, 파일 업로드 처리, 보고서 생성 등과 같이 시간이 많이 걸리는 작업을 수행하기 위해 비동기 작업을 사용하는 것을 종종 고려합니다. PHP 분야에서 널리 사용되는 개발 프레임워크인 ThinkPHP 프레임워크는 비동기 작업을 구현하는 몇 가지 편리한 방법을 제공합니다.

ThinkPHP 설치 단계: PHP, Composer 및 MySQL 환경을 준비합니다. Composer를 사용하여 프로젝트를 만듭니다. ThinkPHP 프레임워크와 종속성을 설치합니다. 데이터베이스 연결을 구성합니다. 애플리케이션 코드를 생성합니다. 애플리케이션을 실행하고 http://localhost:8000을 방문하세요.

ThinkPHP는 캐싱 메커니즘, 코드 최적화, 병렬 처리 및 데이터베이스 최적화와 같은 장점을 갖춘 고성능 PHP 프레임워크입니다. 공식 성능 테스트에 따르면 초당 10,000개 이상의 요청을 처리할 수 있으며 JD.com, Ctrip과 같은 대규모 웹 사이트 및 엔터프라이즈 시스템에서 실제 응용 프로그램으로 널리 사용됩니다.
