PHPMQTT问题一二三
问题一:PHPMQTT作为客户端订阅超过一定数量的主题后,系统就会报错。
思路:在网上查找原因,失败;
打开调试debug = true ; 结果proc方法中报错: eof receive
问题二:为什么读不到socket呢?
MQTT为TCP传输协议:遵循TCP三次握手协议,所以对MQTT有重新理了一次;
在MQTT群里咨询,请教大佬;
一个技术大姐:(其实没我大多少):让我看看MQTT日志报错;
于是查看MQTT错误日志同时报错:
2018-07-27 18:43:18.412 [error] <0.3216.9>@emqttd_client:received:340 Client(39.104.65.187:37660): Parser failed for {function_clause,[{emqttd_parser,parse_utf,[<<6>>],[{file,"src/emqttd_parser.erl"},{line,206}]},{emqttd_parser,parse_topics,3,[{file,"src/emqttd_parser.erl"},{line,195}]},{emqttd_parser,parse_frame,3,[{file,"src/emqttd_parser.erl"},{line,147}]},{emqttd_client,received,2,[{file,"src/emqttd_client.erl"},{line,319}]},{gen_server2,handle_msg,2,[{file,"src/gen_server2.erl"},{line,1046}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}
2018-07-27 18:43:18.413 [error] <0.3216.9>@emqttd_client:received:341 Client(39.104.65.187:37660): Error data: <<0,1,0,6,36,83,89,83,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,112,117,98,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,114,101,112,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,97,115,107,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,99,114,100,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,116,121,112,47,35,0,0,17,47,122,113,49,48,48,108,47,100,101,118,47,111,117,116,47,35,0>>
发现消息不对称;
于是再去网上查,也没有查出原因;
问题三:为什么会Function消息不对称呢?
网上查了很多,包括国外的网站:git上说是time问题也有的说是mqtt QOS 设置为1。都试过,不行
群里一个大哥回复我了
说是我可能是消息FUNCTION写错了
我试过的却是对的。
然后我给他说,我用其他客户端没问题。他对我说,可能是那个库的问题。让我分批次订阅;
问题四:怎么去分批次订阅
于是我根据不同的方法写了两个订阅主题的方法。测试一下通过了。
经过这次错误,明白自己对消息堆栈的理解还不够,以后要多学习他的源码。多深入理解。不然遇到问题要不是别人的点拨上,还会出错。
感谢大家的帮助。
PHPMQTT问题一二三的更多相关文章
- lecture8-RNN的训练方法之二三
HInton第8课,之所以说之二三,是因为训练RNN的四种方法之一:长短时记忆在lecture7中介绍过了,这里介绍的是第二和第三种方法:HF优化和Echo (这个字觉得翻译成回声是不是欠妥,所以保留 ...
- Java学习-024-获取当前类名或方法名二三文
今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法 ...
- 《Qt 实战一二三》
简介 "我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流",不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的 ...
- 【Qt】Qt实战一二三【转】
简介 “我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流”,不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的状态,来开始每一天的 ...
- 武汉科技大学ACM :1005: 一二三
Problem Description 你弟弟刚刚学会写英语的一(one).二(two)和三(three).他在纸上写了好些一二三,可惜有些字母写错了.已知每个单词最多有一个字母写错了(单词长度肯定不 ...
- 一二三(The Seventh Hunan Collegiate Programming Contest)
一二三 你弟弟刚刚学会写英语的一(one).二(two)和三(three).他在纸上写了好些一二三,可惜有些字母写错了.已知每个单词最多有一个字母写错了(单词长度肯定不会错),你能认出他写的啥吗? 输 ...
- 【phpMQTT】phpMQTT详解以及处理使用过程中内存耗死问题
参考文档: https://www.cloudmqtt.com/docs-php.html github下载 : https://github.com/bluerhinos/phpMQTT Cloud ...
- 嗜血法医第一二三季/Dexter全集迅雷下载
嗜血法医 第一.二.三季 Dexter Season 1 2 3 (2006-2007-2008) 本季看点:都市的夜里,永远藏着你无法想象的秘密.德克斯特·摩根(迈克尔·C·豪尔 Michael C ...
- 绝望的主妇第一二三季/Desperate Housewives迅雷下载
绝望主妇 第一二三季 Desperate Housewives Season 1 2 3(2004 2005 2006) 本季看点:在紫藤街上住着这样一群主妇:拥有四个孩子和一个如孩子一般的丈夫的女强 ...
- Java 设计模式系列(二三)访问者模式(Vistor)
Java 设计模式系列(二三)访问者模式(Vistor) 访问者模式是对象的行为模式.访问者模式的目的是封装一些施加于某种数据结构元素之上的操作.一旦这些操作需要修改的话,接受这个操作的数据结构则可以 ...
随机推荐
- 03_Django-GET请求和POST请求-设计模式及模板层
03_Django-GET请求和POST请求-设计模式及模板层 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn. ...
- 如何使用Postman调试HMS Core推送接口?
HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端.Postman是一款接口测试工具,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果.Postma ...
- Vben Admin 源码学习:状态管理-角色权限
前言 本文将对 Vue-Vben-Admin 角色权限的状态管理进行源码解读,耐心读完,相信您一定会有所收获! 更多系列文章详见专栏 Vben Admin 项目分析&实践 . 本文涉及到角 ...
- 监控linux多个cpu的负载情况
监控linux多个cpu的负载情况 top然后按数字键1
- Linux命令之find、grep、echo、tar、whoami、uname
1. whoami--查看当前登录的用户名 book@100ask:~/linux$ whoami book 2. echo--打印命令,配合'>'或者'>>'使用 echo 打印信 ...
- 彻底掌握Makefile(二)
彻底掌握Makefile(二) 前言 在前面的文章彻底掌握Makefile(一)当中,我们简要的介绍了一些常见的makefile使用方法,在本篇文章当中我们将继续介绍一些makefile当中的常见用法 ...
- ELK日志报警插件ElastAlert并配置钉钉报警
文章转载自:https://www.cnblogs.com/uglyliu/p/13118386.html ELK日志报警插件ElastAlert 它通过将Elasticsearch与两种类型的组件( ...
- Pod的dns记录怎么组成的
Pod的dns记录怎么组成的 <Pod Name>.<service name>.<namespace name>.svc.cluster.local Pod的Na ...
- NSIS 自定义安装界面准确获取安装进度完美解决方案
友情提醒:随着7zip版本快速更新,nsis7z插件已经不能全面兼容新版,使用本例子请将7zip版本降至9.2x以下并下载最新版nsis7z.dll! ------------------------ ...
- .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
在最新版的 .NET 平台中,微软在逐步放弃 System.Drawing.Imaging ,给出的理由如下: System.Drawing命名空间对某些操作系统和应用程序类型有一些限制. 在Wind ...