今天通过workerman/mqtt,去链接mqtt服务器,程序运行起来了,但是没有链接到服务器,然后没有任何提示,也没有看到更多地提示,请问怎么调试,给个思路。谢谢。 第三方工具都可以链接上服务器。
workerman用debug方式运行(启动的时候不加-d),mqtt也开debug方式,见mqtt手册,然后会有mqtt通讯相关的日志打印在控制台
debug模式应该都打开了,我用的 $options['debug ']=true; 这只的mqtt的模式debug,但是链接的时候还是不行。
$worker->onWorkerStart = function(){ $options['username']='admin'; $options['password']='admin'; $options['debug ']=true; $mqtt = new Workerman\Mqtt\Client('mqtt://118.190.203.81:1883',$options); $mqtt->onConnect = function($mqtt) { $mqtt->subscribe('ibgw'); var_dump($mqtt); }; $mqtt->onMessage = function($topic, $content){ var_dump($topic, $content); }; $mqtt->connect(); };
我用其他软件测试mqtt 服务器应该可以链接,没有问题
看下118.190.203.81的1883安全组和防火墙开了没,我这里连接118.190.203.81:1883地址超时
1883的端口已经 属于安全组的 白名单里 ,对 所有IP开放了,是不是 mqtt:// 这个 前缀有影响?我 用tcp的话 会提示很多 warnning ,也是链接不上。
下面我贴了一个用其他工具 订阅到的页面
设置下 $options = 'MQIsdp'; $options = 3; 应该是你的mqtt服务端不支持最新的mqtt协议 还有应该是$options=true; ,不是$options=true; ,多了个空格
好的 ,非常感谢
workerman用debug方式运行(启动的时候不加-d),mqtt也开debug方式,见mqtt手册,然后会有mqtt通讯相关的日志打印在控制台
debug模式应该都打开了,我用的 $options['debug ']=true; 这只的mqtt的模式debug,但是链接的时候还是不行。
$worker->onWorkerStart = function(){
$options['username']='admin';
$options['password']='admin';
$options['debug ']=true;
$mqtt = new Workerman\Mqtt\Client('mqtt://118.190.203.81:1883',$options);
$mqtt->onConnect = function($mqtt) {
$mqtt->subscribe('ibgw');
var_dump($mqtt);
};
$mqtt->onMessage = function($topic, $content){
var_dump($topic, $content);
};
$mqtt->connect();
};
我用其他软件测试mqtt 服务器应该可以链接,没有问题
看下118.190.203.81的1883安全组和防火墙开了没,我这里连接118.190.203.81:1883地址超时
1883的端口已经 属于安全组的 白名单里 ,对 所有IP开放了,是不是 mqtt:// 这个 前缀有影响?我 用tcp的话 会提示很多 warnning ,也是链接不上。
下面我贴了一个用其他工具 订阅到的页面
设置下
$options = 'MQIsdp';
$options = 3;
应该是你的mqtt服务端不支持最新的mqtt协议
还有应该是$options=true; ,不是$options=true; ,多了个空格
好的 ,非常感谢