手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

post请求转为mqtt的方法

时间:2024-10-13 03:01:40

1、 首先,请大家明确一点,mqtt服务所使用的服务器软件,通常是mo衡痕贤伎squitto与apollo activemq,他们都是很成熟的mqtt服务器,但是程序本身并没有类似钩子的功能,如果我们直接使用mqtt的推送服务发送信息给接收端。那么这些信息就属于直接推送过去,无法将其存入数据库中。也就无法知道哪些数据存储过,哪些数据没有存储过了。

post请求转为mqtt的方法

2、因此小沃建议发送消息使用http协议中的post请求。然后让后台接受端处理一下,再转发给mqtt服务器。 这里我们重点讲一下php语言如何发送消息给mqtt服务器的。首先,php使用mqtt需要下载一个github上的开源库链接。

post请求转为mqtt的方法

3、大家可以看到这个开源库很简单,就一个phpMQT哌囿亡噱T.php文件。调用方式也有示例文件展示。<?phprequire("phpMQTT.php")稆糨孝汶;$mqtt = new phpMQTT("127.0.0.1", 1883, "clientid"); //第一个参数为mqtt服务器地址,第二个参数为mqtt服务端口,第三个参数为发送的clientid。if ($mqtt->connect()) { $mqtt->publish("topic", "大家好,我是一条通过php发送的mqtt消息");//这里第一条是mqtt的topic值,第二条是发送的信息。 $mqtt->close();}?>

post请求转为mqtt的方法

4、 如果上面的代码写的没有问题,那么就应该可以发送成功了。 但是,如果大家看到这里就不往下看了,那么大家就忽略了一个非常重要的一点,mqtt连接所需要关注的4点这里只提到了2点,请大家注意,mqtt服务是有用户名密码安全机制的。 这里并没有告诉我用户名密码在哪里输入。那么如果遇到mqtt服务器添加了用户名密码,又该怎么办呢?

post请求转为mqtt的方法

5、这里小沃通过读库的源代码,偶然发现了在connect方法中有疑似username与password的参数function connect($clean = true, $will = NULL, $username = NULL, $password = NULL){ ...

post请求转为mqtt的方法

6、因此我大胆尝试将demo中的第三句话。if ($mqtt->connect()) { 替换成if ($mqtt->connect(true, NULL, $username, $password)) {然后去连接了一下我方的一个mqtt服务器,结果居然成功连接通了

7、至此,php发送mqtt消息成功实现了,只要通过post提交方式让php接收消息,然后存一份消息到数据库,另一份消息转成mqtt服务并发送出去即可。

© 手抄报圈