【类 型】:feat
【主 题】:封装一个 发送mqtt的函数 【描 述】: [原因]:顺便测试一下 支付回调信息 (用mqtt发送) [过程]: [影响]: 【结 束】 # 类型 包含: # feat:新功能(feature) # fix:修补bug # docs:文档(documentation) # style: 格式(不影响代码运行的变动) # refactor:重构(即不是新增功能,也不是修改bug的代码变动) # test:增加测试 # chore:构建过程或辅助工具的变动
This commit is contained in:
parent
aff3025c7d
commit
c40e4729db
@ -6,7 +6,6 @@ use Yansongda\Pay\Pay;
|
||||
use PhpMqtt\Client\MqttClient;
|
||||
use PhpMqtt\Client\Exceptions\MqttClientException;
|
||||
use PhpMqtt\Client\ConnectionSettings;
|
||||
use PhpMqtt\Client\Message;
|
||||
|
||||
class PayController extends PublicController
|
||||
{
|
||||
@ -83,42 +82,14 @@ class PayController extends PublicController
|
||||
|
||||
public function notifyCallback()
|
||||
{
|
||||
$server = 'www.szdot.top'; // MQTT 代理地址
|
||||
$port = 1883; // MQTT 代理端口
|
||||
$clientId = 'php-mqtt-client'; // 客户端 ID
|
||||
$username = 'admin'; // 用户名(如果需要)
|
||||
$password = '123456'; // 密码(如果需要)
|
||||
$pay = Pay::wechat($this->config);
|
||||
|
||||
try {
|
||||
// 创建连接设置对象
|
||||
$settings = (new ConnectionSettings)->setUsername($username)->setPassword($password);
|
||||
// 实例化 MQTT 客户端
|
||||
$mqtt = new MqttClient($server, $port, $clientId);
|
||||
// 连接到 MQTT 代理
|
||||
$mqtt->connect($settings);
|
||||
// 检查是否连接成功
|
||||
if ($mqtt->isConnected()) {
|
||||
echo "连接成功";
|
||||
// 发布消息到指定的主题 ps:主题 信息 qos
|
||||
$mqtt->publish('demo', 'Hello MQTT', 0);
|
||||
// 断开连接
|
||||
$mqtt->disconnect();
|
||||
echo "断开连接";
|
||||
} else {
|
||||
echo "连接失败";
|
||||
}
|
||||
} catch (MqttClientException $e) { //连接失败
|
||||
echo "Could not connect to MQTT broker: " . $e->getMessage();
|
||||
$data = $pay->callback(); // 是的,验签就这么简单!
|
||||
} catch (\Exception $e) {
|
||||
// $e->getMessage();
|
||||
}
|
||||
// $pay = Pay::wechat($this->config);
|
||||
|
||||
// try {
|
||||
// $data = $pay->callback(); // 是的,验签就这么简单!
|
||||
// } catch (\Exception $e) {
|
||||
// // $e->getMessage();
|
||||
// }
|
||||
|
||||
// return $pay->success();
|
||||
|
||||
$this->publish('demo', $data);
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,10 @@ use Think\Controller;
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\Key;
|
||||
|
||||
use PhpMqtt\Client\MqttClient;
|
||||
use PhpMqtt\Client\Exceptions\MqttClientException;
|
||||
use PhpMqtt\Client\ConnectionSettings;
|
||||
|
||||
class PublicController extends Controller
|
||||
{
|
||||
protected $openid; // 用户openid
|
||||
@ -103,4 +107,37 @@ class PublicController extends Controller
|
||||
return $phoneNumber;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description: 连接mqtt服务器 并向指定主题发布信息
|
||||
* @param string $topic mqtt主题
|
||||
* @param string $msg 要发布的主题
|
||||
*/
|
||||
protected function publish($topic, $msg)
|
||||
{
|
||||
$server = C('mqtt')['server']; // MQTT 代理地址
|
||||
$port = C('mqtt')['port']; // MQTT 代理端口
|
||||
$clientId = C('mqtt')['client_id']; // 客户端 ID
|
||||
$username = C('mqtt')['username']; // 用户名(如果需要)
|
||||
$password = C('mqtt')['password']; // 密码(如果需要)
|
||||
|
||||
try {
|
||||
// 创建连接设置对象
|
||||
$settings = (new ConnectionSettings)->setUsername($username)->setPassword($password);
|
||||
// 实例化 MQTT 客户端
|
||||
$mqtt = new MqttClient($server, $port, $clientId);
|
||||
// 连接到 MQTT 代理
|
||||
$mqtt->connect($settings);
|
||||
// 检查是否连接成功
|
||||
if ($mqtt->isConnected()) {
|
||||
// 发布消息到指定的主题 ps:主题 信息 qos
|
||||
$mqtt->publish($topic, $msg, 0);
|
||||
// 断开连接
|
||||
$mqtt->disconnect();
|
||||
} else {
|
||||
echo "连接失败";
|
||||
}
|
||||
} catch (MqttClientException $e) { //连接失败
|
||||
echo "Could not connect to MQTT broker: " . $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* @Author: 田老师 4021673@qq.com
|
||||
* @Date: 2022-05-16 17:57:44
|
||||
* @LastEditTime: 2024-06-04 20:39:52
|
||||
* @LastEditTime: 2024-06-05 20:15:27
|
||||
* @Description: Do not edit
|
||||
*/
|
||||
return array(
|
||||
@ -29,7 +29,7 @@ return array(
|
||||
'jwtKey' => 'T!o@k_en', //签发 解析token的key
|
||||
//mqtt
|
||||
'mqtt' => array(
|
||||
'server' => 'szdot.top', // mqtt服务器
|
||||
'server' => 'www.szdot.top', // mqtt服务器
|
||||
'port' => 1883, // mqtt端口
|
||||
'username' => 'admin', // mqtt用户名
|
||||
'password' => '123456', // mqtt密码
|
||||
|
Loading…
Reference in New Issue
Block a user