代码拉取完成,页面将自动刷新
<?php
require('vendor/autoload.php');
use Simps\MQTT\Client;
use Simps\MQTT\Config\ClientConfig;
use Swoole\Coroutine;
use Simps\MQTT\Protocol\Types;
function getConfig()
{
$config = new ClientConfig();
$config->setUserName('emqx_user')
->setPassword('public')
->setClientId('emqx_example_'.Client::genClientID())
->setKeepAlive(10)
// 3,4,5
->setProtocolLevel(5);
return $config;
}
// Subscribe
// https://github.com/simps/mqtt/blob/master/examples/v5/subscribe.php
Coroutine\run(function() {
$config = getConfig();
$client = new Client('broker.emqx.io', 1883, $config);
$client->connect();
$client->subscribe(['emqx/test' => 0]);
while(true) {
$buffer = $client->recv();
var_dump($buffer);
};
});
// Publish
// https://github.com/simps/mqtt/blob/master/examples/v5/publish.php
Coroutine\run(function () {
// refer: https://github.com/simps/mqtt/blob/master/examples/bootstrap.php
$config = getConfig();
$client = new Client('broker.emqx.io', 1883, $config);
$client->connect();
$payload = array(
'protocol' => 'MQTT 5.0',
'date' => date('Y-m-d H:i:s'),
'url' => 'https://github.com/emqx/MQTT-Client-Examples');
while (true) {
$response = $client->publish(
'emqx/test',
json_encode(
$payload
),
1,
0,
0,
[
'topic_alias' => 1,
'message_expiry_interval' => 12,
]
);
$msgid = $response['message_id'];
printf("msg $msgid send\n");
Coroutine::sleep(3);
}
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。