首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回功能不起作用

返回功能不起作用
EN

Stack Overflow用户
提问于 2017-05-09 08:17:20
回答 1查看 564关注 0票数 0

我使用phpMQTT订阅来自MQTT代理的数据。我已经根据它们的基本实现成功地建立了一个pub /子例程。我可以在procmsg()函数中很好地回显这些信息。

但是,我需要获取接收到的数据,并使用它来运行一些数据库操作等等。我似乎无法访问在procmsg()函数之外接收到的主题或msg。如下所示使用返回似乎没有任何效果。

代码语言:javascript
复制
<?php
function procmsg($topic, $msg){
  $value = $msg * 10;
  return $value;
}

echo procmsg($topic, $msg);
echo $value;
?>

显然,我做错了什么--但是我如何获得值,以便我可以在procmsg()之外使用它们?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-09 09:03:49

我不知道这个库,但是在那个代码https://github.com/bluerhinos/phpMQTT/blob/master/phpMQTT.php中,它可能是如何工作的。

在以下方面:

代码语言:javascript
复制
$topics['edafdff398fb22847a2f98a15ca3186e/#'] = array("qos"=>0, "function"=>"procmsg");

您告诉它的是,主题"edafdff398fb22847a2f98a15ca3186e/#“将具有服务质量(qos) = 0,并有一个称为'procmsg‘的”事件“。这就是你后来写这个的原因

代码语言:javascript
复制
function procmsg($topic,$msg){ ... }

因此,在while($mqtt->proc())中,该函数每次都会检查是否有新消息(第332行调用消息函数,然后调用源代码procmsg )

这就是为什么不能调用代码来处理的原因。

换句话说,在procmsg中,您可以调用函数来处理消息ej:

代码语言:javascript
复制
function procmsg($topic,$msg){ 
    $value = $msg * 10;
    doStuffWithDataAndDatabase($value);
}

请注意,您可以简单地更改函数的名称ej:

代码语言:javascript
复制
$topics['edafdff398fb22847a2f98a15ca3186e/#'] = array("qos"=>0, "function"=>"onMessage");

然后:

代码语言:javascript
复制
function onMessage($topic,$msg){ 
    $value = $msg * 10;
    doStuffWithDataAndDatabase($value);
}

对不起,我的英语,希望这个帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43864598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档