53 lines
1.6 KiB
PHP
53 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Home\Controller;
|
|
|
|
use Think\Controller;
|
|
use PhpMqtt\Client\MqttClient;
|
|
use PhpMqtt\Client\Exceptions\MqttClientException;
|
|
use PhpMqtt\Client\ConnectionSettings;
|
|
|
|
class IndexController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
//$this->display();
|
|
$server = 'www.szdot.top'; // MQTT 代理地址
|
|
$port = 1883; // MQTT 代理端口
|
|
$clientId = 'php-mqtt-client'; // 客户端 ID
|
|
$username = 'admin'; // 用户名(如果需要)
|
|
$password = '123456'; // 密码(如果需要)
|
|
|
|
try {
|
|
// 创建连接设置对象
|
|
$settings = (new ConnectionSettings)
|
|
->setUsername($username)
|
|
->setPassword($password);
|
|
|
|
// 实例化 MQTT 客户端
|
|
$mqtt = new MqttClient($server, $port, $clientId);
|
|
|
|
// 连接到 MQTT 代理
|
|
$mqtt->connect($settings);
|
|
|
|
// 检查是否连接成功
|
|
if ($mqtt->isConnected()) {
|
|
echo "Connected to MQTT broker successfully\n";
|
|
|
|
// 发布消息到指定的主题
|
|
$mqtt->publish('demo', 'Hello MQTT', 0);
|
|
|
|
echo "Message published successfully\n";
|
|
|
|
// 断开连接
|
|
$mqtt->disconnect();
|
|
echo "Disconnected from MQTT broker\n";
|
|
} else {
|
|
echo "Could not connect to MQTT broker\n";
|
|
}
|
|
} catch (MqttClientException $e) {
|
|
echo "Could not connect to MQTT broker: " . $e->getMessage();
|
|
}
|
|
}
|
|
}
|