首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQTT使用PHP订阅IBM Bluemix

MQTT使用PHP订阅IBM Bluemix
EN

Stack Overflow用户
提问于 2016-02-17 14:28:55
回答 2查看 904关注 0票数 0

我想通过MQTT协议连接IBM,使用PHP订阅来自IoT基金会的消息。我使用以下代码:

代码语言:javascript
复制
<?php

require("../phpMQTT.php");


$config = array(
  'org_id' => 't9m318',
  'port' => '1883',
  'app_id' => 'phpmqtt',
  'iotf_api_key' => 'my api key',
  'iotf_api_secret' => 'my api secret',
  'device_id' => 'phpmqtt'
);

$config['server'] = $config['org_id'] .'.messaging.internetofthings.ibmcloud.com';
$config['client_id'] = 'a:' . $config['org_id'] . ':' .$config['app_id'];
$location = array();

// initialize client
$mqtt = new phpMQTT($config['server'], $config['port'], $config['client_id']); 
$mqtt->debug = false;

// connect to broker
if(!$mqtt->connect(true, null, $config['iotf_api_key'], $config['iotf_api_secret'])){
  echo 'ERROR: Could not connect to IoT cloud';
    exit();
} 

$topics['iot-2/type/+/id/phpmqtt/evt/+/fmt/json'] = 
  array("qos"=>0, "function"=>"procmsg");
$mqtt->subscribe($topics, 0);

// process messages
while ($mqtt->proc(true)) { 

}
// disconnect
$mqtt->close();
function procmsg($topic, $msg) {
 echo "Msg Recieved: $msg";
}

?>

但是浏览器显示了这样的信息:

致命错误:在第167行的/Library/WebServer/Documents/phpMQTT/phpMQTT.php中超过30秒的最大执行时间

EN

回答 2

Stack Overflow用户

发布于 2016-04-20 19:27:17

订阅并不意味着要在web浏览器中运行,因为它的外观是无限的,最好是从命令行运行。

如果您使用订阅方法接收消息,您可以查看持久的msgs,并在msg接收上跳出循环。

有一个示例说明如何在此respository https://github.com/vvaswani/bluemix-iotf-device-tracker的web浏览器中使用web-app.php文件中的https://github.com/vvaswani/bluemix-iotf-device-tracker

票数 1
EN

Stack Overflow用户

发布于 2016-02-17 21:45:34

您没有提供太多关于通过这样做要实现什么的信息;是否要一直向浏览器发送消息,直到浏览器中的页面关闭为止?

服务器发送事件或Websockets可能是更好的选择,而PHP可能不是最好的选择,因为每个连接占用了相当多的内存(例如,与node.js相比)。

但是,如果您只想删除30秒的PHP,则可以使用以下函数:http://php.net/manual/en/function.set-time-limit.php

或在php.ini:http://php.net/manual/en/info.configuration.php中设置http://php.net/manual/en/info.configuration.php

将最大执行时间设置为0应阻止其超时。

但是请注意,PHP和/或您的PHP服务器将有有限数量的并发HTTP连接。

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

https://stackoverflow.com/questions/35459449

复制
相关文章

相似问题

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