关于thinkphp使用mqtt

下面由thinkphp框架教程栏目给大家介绍thinkphp使用mqtt,希望对需要的朋友有所帮助!

最近在做一个项目使用到mqtt,网上看到很多例子 都看的不太明白(大概因为我笨)不过后来还是处理好了,就在这里记录下以免忘记  因为不是很精通,看到有哪里写的错误的可以留言指点

首先准备工作就是  环境  以及框架,各位也可以用原生,差不太多

环境   我使用的是contOs7  安装了mosquitto环境 使用的mqtt  安装教程在 这里(记得设置密码,有关权限的还没做,本文章就没写)

框架    我使用的是TP5.0的框架

接下里就是开发流程

立即学习“PHP免费学习笔记(深入)”;

1   下载MQTT类然后放到了项目根目录下的 extend文件夹 ,本来想放在csdn资源让大家下 赚个1积分辛苦费。没想到默认就是5积分,懒得去Git而且分多的欢迎点击资源地址 ,然后把Git地址给大家了 Git地址是:https://github.com/bluerhinos/phpMQTT,

2    然后引入MQtt类

   接下来是发布和订阅的代码块    关于MQTT信息Qos等级,有兴趣的可以去搜索一下  

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
"; } } /** * 要使用命令行运行此方法!!! * 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执行示例先cd到项目的public目录然后执行    php index.php 模块/控制器/方法

执行后返回 sucess    如果要测试的话 可以使用  mqtt.fx 软件 地址为 http://www.jensd.de/apps/mqttfx/  我使用的是1.7.1  点进去后下面有个windows的链接 点击下载就行了 ,使用的话

配置使用
打开软件,界面如下图

在这里插入图片描述

然后选择编辑连接

AppMall应用商店 AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56 查看详情 AppMall应用商店

在这里插入图片描述

填写相应的Profile Name,Broker Address和Broker Port(如果修改过的话,默认是1883),Client ID可以点击Generate按钮自动生成。编辑完之后点击保存退出编辑界面。

在这里插入图片描述

之后到主界面的下拉框选择刚才配置的Profile Name名称(172.16.0.121),然后点击Connect(连接)按钮进行服务连接。连接成功后,再点击Subscribe(订阅)选项,在下方的下拉框中选择主题(或者自己创建一个主题,如i like mqtt),之后点击后面的Subscribe(订阅)按钮。

在这里插入图片描述

再回到Publish(发布)选项,在下拉框中选择一个主题(或创建一个与Subscribe(订阅)选项中一样的主题)。现在可以在下方的输入区域写上你要发送的消息(如wo ai mqtt,中文在订阅者的消息显示上会乱码),这里的消息支持多种格式,然后点击Publish(发布)按钮。

在这里插入图片描述

最后再回来Subscribe(订阅)选项中查看消息是否接收成功,如图所示已经成功接收到发布者发送的消息(wo ai mqtt)。

在这里插入图片描述

还可以选择对应的消息解码器(文本格式,JSON格式,Base64编码,十六进制编码,Sparkplug编码)

 

以上就是关于thinkphp使用mqtt的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/350146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 21:54:25
下一篇 2025年11月5日 21:58:44

相关推荐

  • php框架的整理和补充

    选型应匹配项目需求,Laravel适合中大型应用,Symfony适合企业级定制,CodeIgniter和ThinkPHP适合小型或快速上线项目,需关注自动加载、日志分级、迁移分离、中间件顺序及微框架灵活使用,合理优化才能稳定支撑迭代。 PHP框架的选择和使用,关键不在数量多,而在是否匹配项目需求、团…

    2025年12月13日
    000
  • 宝塔怎么上传php源码_宝塔上传php源码配置与部署步骤【指南】

    创建网站环境:登录宝塔面板,添加站点并配置域名、PHP版本及数据库;2. 上传源码:通过文件管理器或FTP将PHP源码上传至网站根目录并解压;3. 配置权限与伪静态:设置runtime等目录权限为755或777,按框架选择伪静态规则;4. 完成安装:访问域名运行安装向导,导入数据库,删除instal…

    2025年12月13日
    000
  • ThinkPHP配置文件的方法

    ThinkPHP配置文件用于定义运行参数,存于config/目录下,按框架默认→应用公共→环境→运行时顺序加载覆盖,支持config()函数读写及.env多环境管理。 ThinkPHP 的配置文件主要用于定义应用运行时的各种参数,比如数据库连接、缓存驱动、调试模式等。核心配置通过 PHP 数组返回,…

    2025年12月13日
    000
  • 宝塔怎么安装php源码_宝塔安装php源码环境与步骤【教程】

    首先安装PHP环境,登录宝塔面板→软件商店→搜索PHP→选择版本安装;再添加网站并设置根目录与PHP关联;接着上传PHP源码至站点目录,确保index.php在根目录;然后调整PHP配置,修改内存、执行时间及禁用函数;最后根据框架设置伪静态规则,如ThinkPHP需添加rewrite规则并保存生效。…

    2025年12月13日
    000
  • 怎么用phpstudy安装php源码_用phpstudy安装php源码配置与法【教程】

    首先下载安装PhpStudy并选择合适路径,然后在面板中添加站点,设置域名和源码目录,选择PHP版本后保存;接着启动Apache或Nginx服务,浏览器访问对应域名或localhost端口即可运行PHP源码;通过修改php.ini可启用扩展、调整上传限制、开启错误显示,并支持伪静态规则,便于开发调试…

    2025年12月13日
    000
  • php中QPM框架是什么?

    目前PHP中并无公认的QPM框架,可能是对Laravel、ThinkPHP等主流框架的误写,或指代内部私有框架、工具缩写(如包管理脚本),亦或是极小众未被广泛认知的实验性项目。 QPM并不是PHP中广泛认知或主流的框架名称。目前在PHP社区中,并没有一个被官方认可或广泛使用的框架叫做“QPM”。可能…

    2025年12月13日
    000
  • php源码怎么进入后台_php源码进入后台入口与权限法【指南】

    1、通过常见路径如/admin.php或工具扫描尝试访问后台;2、分析源码路由配置定位真实入口;3、查询数据库获取或修改管理员凭证;4、利用漏洞篡改权限参数提升身份;5、检查.htaccess或代码中的IP限制规则并绕过。 如果您尝试访问某个PHP源码构建的网站后台,但无法找到登录入口或缺乏相应权限…

    2025年12月13日
    000
  • PHP之ThinkPHP有几种查询?

    ThinkPHP有5种核心查询方式:1.基础链式查询,2.原生SQL查询,3.视图查询,4.关联查询(含预加载),5.查询作用域;其中链式+关联+作用域覆盖90%以上需求。 ThinkPHP 的查询方式主要围绕模型(Model)和查询构建器(Query Builder)展开,常见且实用的有 5 种核…

    2025年12月13日
    000
  • php首页源码怎么找_php首页源码查找位置与定位法【技巧】

    首先检查网站根目录下的index.php等默认入口文件,查看是否包含首页输出或模板调用;若使用框架,则需查看路由配置文件(如web.php)中根路径’/’对应的控制器和方法,进而定位实际渲染逻辑;同时可通过服务器配置(如DirectoryIndex)确认默认首页文件;还可通过…

    2025年12月13日
    000
  • php中Quercus框架的安装

    Quercus是Java实现的PHP引擎,用于在Tomcat或Resin中运行PHP,适用于已有Java项目需集成少量PHP的场景,不支持PHP 7+且已停止维护,现代开发不推荐使用。 Quercus 并不是 PHP 的框架,而是 Caucho Technology 开发的一个 Java 实现的 P…

    2025年12月13日
    000
  • PHP中ThinkPHP的高级查询

    ThinkPHP高级查询支持多表关联、闭包动态条件、子查询及聚合统计。通过join链式调用实现灵活关联;闭包where按需拼接防SQL注入;子查询支持in/exist;group+聚合函数满足报表需求。 ThinkPHP 的高级查询主要体现在对复杂业务场景的支持上,比如多表关联、子查询、聚合统计、动…

    2025年12月13日
    000
  • 有php源码怎么搭建_有php源码搭建站点与配置法【指南】

    首先搭建PHP运行环境,安装Apache或Nginx、PHP及MySQL;随后将源码部署至Web服务器根目录并设置文件权限;接着配置数据库连接信息,确保程序可访问数据库;然后创建数据库并导入SQL文件以初始化数据结构;最后调整服务器配置,启用重写模块、设置默认首页并关闭错误显示以保障安全。 如果您已…

    2025年12月13日
    000
  • php源码怎么查杀后面_php源码查杀后门与清理技巧【方法】

    发现PHP源码中存在后门时,应立即采取措施清除恶意代码并加固系统安全。首先使用D盾、河马等Webshell查杀工具对网站目录进行全盘扫描,识别并隔离标记为“疑似Webshell”的高危文件;随后通过代码编辑器全局搜索eval、assert、system等危险函数,结合上下文分析其调用合理性,重点排查…

    2025年12月13日
    000
  • php源码怎么做_php源码做项目流程与实现法【教程】

    首先明确PHP项目开发需遵循系统化流程,具体包括:一、需求分析与规划,明确功能模块与技术栈;二、搭建本地环境,安装XAMPP等工具并配置服务;三、设计数据库结构,创建表并配置连接参数;四、按MVC模式组织代码,编写模型、控制器与视图文件;五、逐项实现注册登录、数据展示等功能模块;六、采用预处理语句、…

    2025年12月13日
    000
  • php消息队列的介绍

    消息队列是PHP中实现异步处理、流量削峰和系统解耦的关键技术,通过生产者将任务如发邮件、处理订单等放入队列,消费者后台逐步执行,提升系统稳定性和用户体验;常用实现方式包括Redis List、RabbitMQ、Kafka及ThinkPHP的think-queue扩展。 PHP消息队列不是什么神秘技术…

    2025年12月13日
    000
  • php直播源码怎么用_php直播源码用部署与播放设置【指南】

    部署PHP直播系统需先配置Linux服务器环境,安装Nginx、PHP 7.4+和MySQL,通过宝塔面板可简化流程;随后上传源码至网站根目录,解压后修改数据库配置文件并导入live.sql数据,设置运行目录为/public并配置伪静态;接着部署流媒体服务如SRS或Nginx-RTMP模块,配置推流…

    2025年12月13日
    000
  • php空间怎么上传网站源码_php空间上传网站源码步骤与法【技巧】

    上传网站源码到PHP空间需先确认PHP版本、扩展支持并创建数据库;2. 可通过FTP工具(如FileZilla)或主机控制面板上传压缩源码并解压至根目录;3. 最后通过浏览器访问域名完成安装向导,填写数据库信息,删除安装目录并设置文件权限即可运行网站。 上传网站源码到PHP空间是搭建网站的基础操作,…

    2025年12月13日
    000
  • php源码怎么更新缓存_php源码更新缓存配置与刷新步骤【技巧】

    修改PHP代码后页面未更新,需清除缓存。1、调整php.ini中OPcache配置并调用opcache_reset()刷新;2、重启Apache或Nginx+PHP-FPM服务;3、删除框架缓存文件或执行php artisan cache:clear等命令;4、运行composer dump-aut…

    2025年12月13日
    000
  • php源码源码怎么安装_用PHP环境安装源码步骤教程【教程】

    首先搭建PHP运行环境,选择XAMPP等工具安装并启动Apache和MySQL服务,将源码放入htdocs目录;接着配置数据库,通过phpMyAdmin创建数据库并导入.sql文件,修改config.php中的连接信息;然后设置uploads、cache等目录的可写权限为755或777;之后访问ht…

    2025年12月13日
    000
  • php怎么找源码_php找源码渠道与安全获取技巧

    可通过开源平台如GitHub、官方渠道、Composer、技术社区及本地服务器安全获取PHP源码。首先选择可信来源,优先下载高星项目或官网发布版本,并核对哈希值确保完整性;其次利用Composer安装依赖查看第三方库代码,或参与社区交流获取实战项目资源;最后可登录部署服务器直接浏览现有系统源码结构,…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信