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 脚本。

html 复制代码
<!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>

(正文结束)

相关推荐
Chester_19997 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
EXI-小洲8 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员8 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导8 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan8 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251499 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
大衛說10 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
可乐鸡翅yeah_11 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
2601_9622035111 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理11 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php