当前位置: 首页 > news >正文

【MQTT(5)】php 做一个mqtt按钮,发布触发信号

在之前博客php 做一个文件下载服务器,得避免跨路径工具,安全很重要 中加了一个按钮,触发物联网设备返回数据。基于mqtt开发,如果想知道mqtt如何搭建,可以看我的博客【MQTT(1)】服务端的搭建

效果

在这里插入图片描述

需要写两个文件

1、一个php发送mqtt信号

<?php  
require 'vendor/autoload.php'; // 引入 Composer 的自动加载文件  
require('vendor/bluerhinos/phpmqtt/phpMQTT.php');$server   = "gz.xxx.xxx.com"; // MQTT 服务器地址  
$port     = 1883;                // MQTT 服务器端口  
$username = "user1";     // MQTT 用户名(如果需要)  
$password = "123456";     // MQTT 密码(如果需要)  
$client_id = "phpMQTT-publisher"; // 客户端ID  $mqtt = new Bluerhinos\phpMQTT($server, $port, $client_id);if (!$mqtt->connect(true, NULL, $username, $password)) {  exit(1);  
}  $topic = "example/temperature"; // MQTT 主题  
$content = "Hello MQTT!"; // 要发送的消息内容  $mqtt->publish($topic, $content, 0); // 发送消息  
$mqtt->close(); // 关闭连接  echo "Data Return success\n";  
?>

2、 AJAX 请求来实现这一点。以下是一个基本的实现方案: 前端 HTML 和 JavaScript

首先,你需要一个 HTML 页面,其中包含一个按钮,用于发送 AJAX 请求到 PHP 脚本。

<!DOCTYPE html>  
<html lang="en">  
<head>  <meta charset="UTF-8">  <title>MQTT Publish Button</title>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>  <script>  $(document).ready(function() {  $('#publishBtn').click(function() {  $.ajax({  url: 'publish_mqtt.php', // 你的 PHP 脚本路径  type: 'POST',  success: function(response) {  alert('Message published: ' + response);  },  error: function(xhr, status, error) {  alert('Error: ' + error);  }  });  });  });  </script>  
</head>  
<body>  <button id="publishBtn">Publish MQTT Message</button>  
</body>  
</html>

(正文结束)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Amazon Bedrock + Amazon DynamoDB 数据设计与建模
  • scrapy 爬取旅游景点相关数据(一)
  • QT基础教程(QEvent事件和事件过滤器)
  • MATLAB禁忌蚁群算法求解充电电动车辆路径规划EVRP代码实例
  • 使用 Swagger 在 Golang 中进行 API 文档生成
  • 深入解析C#中的URI和URL编码:理解EscapeDataString、EscapeUriString和UrlEncode的区别及字符编码错误处理
  • SpringCloud之feign
  • 前端三大主流框架对比
  • 流媒体服务器一:使用成熟的流媒体SRS 搭建 RTMP流媒体服务器
  • Java的序列化和反序列化
  • 阿里云服务器上怎么生成公钥和私钥对
  • K210视觉识别模块学习笔记7:多线程多模型编程识别
  • Qt基础 | QSqlTableModel 的使用
  • 深入解析 Java 集合类:ArrayList、LinkedList、Vector
  • RIP路由协议
  • canvas绘制圆角头像
  • Effective Java 笔记(一)
  • Hibernate最全面试题
  • Java超时控制的实现
  • maven工程打包jar以及java jar命令的classpath使用
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Vue全家桶实现一个Web App
  • Vultr 教程目录
  • Web标准制定过程
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 记一次用 NodeJs 实现模拟登录的思路
  • 开源SQL-on-Hadoop系统一览
  • 日剧·日综资源集合(建议收藏)
  • 再次简单明了总结flex布局,一看就懂...
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 仓管云——企业云erp功能有哪些?
  • 带你开发类似Pokemon Go的AR游戏
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​你们这样子,耽误我的工作进度怎么办?
  • # windows 运行框输入mrt提示错误:Windows 找不到文件‘mrt‘。请确定文件名是否正确后,再试一次
  • (3)(3.5) 遥测无线电区域条例
  • (rabbitmq的高级特性)消息可靠性
  • (二)原生js案例之数码时钟计时
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (蓝桥杯每日一题)love
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)linux文件内容查看
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)用.Net的File控件上传文件的解决方案
  • .Net IE10 _doPostBack 未定义
  • .py文件应该怎样打开?
  • [4]CUDA中的向量计算与并行通信模式
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [CISCN 2019华东南]Web11